C++ 指向类的指针

Posted

技术标签:

【中文标题】C++ 指向类的指针【英文标题】:C++Pointer to a Class 【发布时间】:2012-10-18 20:03:36 【问题描述】:

我有一个关于指向类的指针的问题。我的意思是在提供类中我想创建一个Course * sample 指针,顺便说一下 course 也是另一个接受一个 int 参数的类,而不是试图从内存中占用空间通过sample=new Course; 但我收到一条错误消息:

Offering.cpp:12:19: error: no matching function for call to ‘Course::Course()’
Offering.cpp:12:19: note: candidates are:
lib.h:63:5: note: Course::Course(int)
lib.h:63:5: note:   candidate expects 1 argument, 0 provided

有谁知道我错在哪里?还是谢谢。

【问题讨论】:

没有代码就无法提供帮助。但是您是否阅读了错误消息以及它试图告诉您什么?修复非常简单 【参考方案1】:

Course *sample = new Course(11);

如果当然将int 作为构造函数参数,您必须传递它,即使在堆上分配时也是如此。

【讨论】:

【参考方案2】:

Course 定义一个默认构造函数。如果不能或不应该,则必须使用现有的。

Course * sample = new Course(1337);

【讨论】:

【参考方案3】:

你需要做的:

Course *sample = new Course(10);

这是因为您显然为 Course 定义了一个构造函数,其定义为:

Course(int);

当您定义自定义构造函数时,不会自动添加默认构造函数( Course() )。

【讨论】:

以上是关于C++ 指向类的指针的主要内容,如果未能解决你的问题,请参考以下文章

指向 C++ 类的 C 结构指针

C++继承,发送一个指向基类的指针

c++类的成员函数指针如何转为普通指针

在 C++ 中将指向基类的指针传递给派生类的成员函数

指向 C++ 中类的指针的 PIMPL 习语

指向抽象基类的指针需要一些转换吗? C++