【发布时间】:2018-01-11 08:26:39
【问题描述】:
在继承的类构造函数中,我想使用一个类常量成员,该成员对基类构造函数隐藏基类:
#include <string>
#include <iostream>
class BaseClass {
private:
const int constant_variable { 21 };
public:
int mutable_variable;
BaseClass(): mutable_variable(constant_variable) {};
};
class DerivedClass: public BaseClass {
private:
const int constant_variable { 42 };
public:
using BaseClass::BaseClass;
};
int main () {
DerivedClass dc;
std::cout << dc.mutable_variable << std::endl; // 21, but I want it to be 42
return 0;
}
例如,在示例代码中,BaseClass 的构造函数使用自己的值 constant_variable,而我希望它使用 DerivedClass 的 constant_variable。
如何在 C++ 中做到这一点?
【问题讨论】:
-
你没有覆盖任何东西。每个
DerivedClass对象中有两个const整数。
标签: c++ inheritance constructor