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++ 指向类的指针的主要内容,如果未能解决你的问题,请参考以下文章