gpt4 book ai didi

C++ : sharing fields between class and superclasses

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:19:41 24 4
gpt4 key购买 nike

我对类和父类(super class)共享字段有点困惑。我期待这没问题:

class SuperC {
public:
SuperC();
protected:
double value;
};

class C : public SuperC {
public :
C(double value);
};

SuperC::SuperC(){}
C::C(double value):SuperC(),value(value){}

但编译器告诉我 C 没有字段“值”。 C 没有继承自 SuperC 中定义的那个?

非常感谢

最佳答案

可以,但是您只能使用构造函数初始化列表语法来初始化当前类成员。

您必须在 SuperC 中创建一个重载构造函数来初始化 value 并调用它。

class SuperC {
public:
SuperC();
SuperC(double v) : value(v) {}
protected:
double value;
};

class C : public SuperC {
public :
C(double value);
};

SuperC::SuperC(){}
C::C(double value):SuperC(value){}

关于C++ : sharing fields between class and superclasses,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15968400/

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