gpt4 book ai didi

C++ 在初始化列表中的基类初始化之前调用函数

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:10:57 25 4
gpt4 key购买 nike

场景:

在一个项目中,我有class B源自 class A , 其中class A有一个不可访问的默认构造函数。

Class B设置如下:

class B : public A
{
private:
void SetupFunction() { /*Crucial code*/ }
public:
B() : A(Value) {}
}

假设它对 SetupFunction() 至关重要在 A(Value)之前 初始化期间调用构造函数,我将如何实现这一目标?可能吗?

我正在使用 Code::Blocks 13.12在 Windows 7 上

最佳答案

您可以让 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)) {}
}

关于C++ 在初始化列表中的基类初始化之前调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33338718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com