我有以下代码:
class A{
public:
A(int* i){
std::cout << "in A()" << i << std::endl;
}
};
class B: public A{
public:
B(): i{new int{10}}, A{i}{
std::cout << "in B()" << std::endl;
}
private:
int* i;
};
int main()
{
B b;
}
Run Code Online (Sandbox Code Playgroud)
在A构造函数中,我有0(这是预期的)。但是我想先初始化i。有可能吗?
i是 class 的数据成员B,因此为了创建,B必须首先创建 class 的对象。
正如@Arthur 评论的那样,有一种方法是这样的:
B(): A{i = new int{10}} {
std::cout << "in B()" << std::endl;
}
Run Code Online (Sandbox Code Playgroud)