c++:在类和超类之间共享字段
C++ : sharing fields between class and superclasses
我对类和超类共享字段有点困惑。我希望这是好的:
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没有字段"value"。C不从SuperC中定义的继承?
许多thx可以,但是您只能使用构造函数初始化列表语法初始化当前类成员。
你必须在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){}
不能在派生类的构造函数初始化列表中初始化基类成员。
fix1:最多可以在派生类中通过向BC传递参数来初始化基类(BC)构造函数。
fix2:在派生类构造函数体中赋值基类成员,而不是在构造函数初始化列表中赋值
C::C(double value1):SuperC()
{
value = value1;
}
相关文章:
- 在cuda线程之间共享大量常量数据
- 在c代码之间共享数据的最佳方式
- C++两个源文件之间共享的枚举的静态实例
- 内联函数的函数本地静态对象是否在共享对象文件之间共享?
- Directx 12 :在两个进程之间共享图形内存
- 如何在进程之间共享大量数据而不重复?(国际刑罚委员会)
- 简单使用 std::atomic 在两个线程之间共享数据
- C++:在另外两个对象之间共享一个对象
- 在C++中的程序之间共享指针
- 拥有或在对象之间共享资源
- 在两个结构之间共享数组
- 如何在不同的CMakeList.txt之间共享变量?
- 在QT中的两个窗口之间共享websocket连接
- 在VS2017中,我们如何在项目成员之间共享编译设置
- 通过require在不同的Lua状态之间共享全局变量
- 在两个类实例之间共享向量
- OpenGL GLFW GLAD 在项目之间共享 Visual C++.
- 如何在C++中的不同翻译单元之间共享枚举的实例
- 在 c++ 中,在线程之间共享数据容器的最佳方法是什么?
- 在Emscripten和Qt之间共享OpenGL代码