在项目中,我class B
派生自class A
,其中class A
具有无法访问的默认构造函数。
Class B
的设置如下:
class B : public A
{
private:
void SetupFunction() { /*Crucial code*/ }
public:
B() : A(Value) {}
}
假设在SetupFunction()
构造函数之前的初始化期间调用A(Value)
至关重要,我将如何实现此目的?有可能吗?
我在Windows 7上使用Code::Blocks 13.12
答案 0 :(得分:12)
您可以让SetupFunction()
返回然后传递给初始化A
的值,例如:
class B : public A
{
private:
int SetupFunction() { /*Crucial code*/ return Value; }
public:
B() : A(SetupFunction()) {}
}
如果您不想更改SetupFunction()
,请使用逗号运算符:
class B : public A
{
private:
void SetupFunction() { /*Crucial code*/ }
public:
B() : A((SetupFunction(), Value)) {}
}