对于C++学习的目的,我有文件class1.h,class1.cpp,class2.h和class2.cpp.我想实例化一个名为class1Objinside 的对象class2.我在哪里以及如何实例化此对象?我classObj在class2构造函数中实例化吗?
在过去,我已经创建了一个指向类的指针,该指针在那个时候运行良好,但我认为指针不是我这次应该采用的路径,因为它classObj只会在内部使用class2.
class class1
{
//...
};
class class2
{
class1 member;
//...
};
Run Code Online (Sandbox Code Playgroud)
在class2 ctor中,您可以member在构造函数初始化列表中初始化.
class2::class2(...)
: member(...)
{
//...
}
Run Code Online (Sandbox Code Playgroud)
那么你过去是如何创建一个指针的?据推测,你做了这样的事情:
class class2
{
public:
class2()
{
class1Pointer = new class1();
}
// Destructor, copy constructor/assignment, etc...
private:
class1* class1Pointer;
};
Run Code Online (Sandbox Code Playgroud)
现在你想做完全一样的事情,但这次你不想要一个指向 的指针class1,你想要一个class1本身:
class class2
{
public:
class2() {}
// Destructor, copy constructor/assignment, etc...
private:
class1 class1Obj;
};
Run Code Online (Sandbox Code Playgroud)
class2创建对象时,对象将被默认初始化。如果您的 class1 构造函数应该接受一些参数,请使用初始化列表:
class class2
{
public:
class2() : class1Obj(1, 2, 3) {}
// Destructor, copy constructor/assignment, etc...
private:
class1 class1Obj;
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6969 次 |
| 最近记录: |