gpt4 book ai didi

c++ - 从子类设置 const 成员值

转载 作者:行者123 更新时间:2023-11-30 00:56:30 26 4
gpt4 key购买 nike

代码:

struct A{
const bool const_some_write_once_flag;
A(): const_some_write_once_flag(false) { }
};
struct B: public A{
B(): const_some_write_once_flag(true) { }
};

错误是:类“B”没有任何名为“const_some_write_once_flag”的字段。我相信这是因为在 B 的构造函数中, 正在创建的对象还不是 A 类型,因为 A 的“继承切片”尚未初始化。

我已经尝试了几种解决方法,但都没有成功,我将在这里省略它们。有没有办法实现我想要做的事情?

最佳答案

在它的初始化列表中,B只能初始化它自己的数据成员、它的直接基类和任何虚基类。 const_some_write_once_flag 不是这些;它是 A 的数据成员。它只能由 A 的构造函数初始化。

struct A{
const bool const_some_write_once_flag;
A(): const_some_write_once_flag(false) { }

protected:
A(bool flag) : const_some_write_once_flag(flag) { }
};
struct B: public A{
B(): A(true) { }
};

关于c++ - 从子类设置 const 成员值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9999952/

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