【发布时间】:2013-02-25 02:26:01
【问题描述】:
我正在尝试创建一个包含另一个类作为成员变量的类。我遇到了以下问题:
class SubClass{
....
};
class MainClass{
public:
MainClass(SubClass const & subClass_);
private:
SubClass subClass
};
在构造函数的 .cpp 文件中
MainClass::MainClass(SubClass const & subClass_){
subClass = subClass_;
}
这会给出编译器错误。但以下工作:
MainClass::MainClass(SubClass const & subClass_):
subClass(subClass_) {}
谁能告诉我这两个有什么区别?
【问题讨论】:
-
一种是构造后赋值,一种是复制构造。
SubClass的声明是理解为什么编译和为什么不编译的关键。 -
请在
SubClass的声明中填写....的内容。 -
This one,有人吗?有一个大标题,标题为Initializing 和Assignment inside constructor有什么区别?。
-
什么是编译器错误?
-
@Nate,我怀疑没有匹配的复制赋值运算符或没有默认构造函数。
标签: c++ oop class constructor