在一个项目中,我有class B一个派生自class A哪里,哪里class A有一个无法访问的默认构造函数.
Class B 设置如下:
class B : public A
{
private:
void SetupFunction() { /*Crucial code*/ }
public:
B() : A(Value) {}
}
Run Code Online (Sandbox Code Playgroud)
假设在构造SetupFunction()函数之前初始化期间调用是至关重要的,A(Value)我将如何实现这一目标?可能吗?
我Code::Blocks 13.12在Windows 7上使用
Jon*_*ter 14
您可以SetupFunction()返回返回初始化的值A,例如:
class B : public A
{
private:
int SetupFunction() { /*Crucial code*/ return Value; }
public:
B() : A(SetupFunction()) {}
}
Run Code Online (Sandbox Code Playgroud)
如果您不想更改,请使用逗号运算符SetupFunction():
class B : public A
{
private:
void SetupFunction() { /*Crucial code*/ }
public:
B() : A((SetupFunction(), Value)) {}
}
Run Code Online (Sandbox Code Playgroud)