这是我正在尝试做的简化版本
class Firstclass
{
public:
Firstclass(int x)
{
//do things with x;
}
};
class Secondclass
{
public:
Secondclass()
{
Firstclass a(10);
}
void func()
{
//Do things with a
}
private:
Firstclass a;
};
Run Code Online (Sandbox Code Playgroud)
所以我有一个类(Firstclass),带有一个带有int参数的构造函数.现在我想在另一个类(Secondclass)的构造函数中创建该类的实例.
线条
private:
Firstclass a;
Run Code Online (Sandbox Code Playgroud)
如果我只是变量而不是类,我会做什么:首先提到它,以便我可以在别处使用它(例如在函数func()中).这似乎不适用于类,因为编译器不理解Secondclass的构造函数应该做什么.
我该怎么做呢?
通过member-initializer列表初始化它:
Secondclass() : a(10) { }
Run Code Online (Sandbox Code Playgroud)
这是必需的,因为Firstclass
没有默认构造函数.此外,使用函数声明对带参数的类内初始化进行模糊处理,因此您可以在类主体中执行此操作.在C++ 11中,这是通过聚合初始化来解决的:
Firstclass a{10};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1775 次 |
最近记录: |