C++指向类的指针

C++Pointer to a Class

本文关键字:指针 C++      更新时间:2023-10-16

我有一个关于指向类的指针的问题。我的意思是在 Offering 类中,我想创建一个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

有没有人知道我错在哪里?无论如何谢谢。

Course *sample = new Course(11);

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

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

Course * sample = new Course(1337);

你需要做:

Course *sample = new Course(10);

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

Course(int);

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