【发布时间】:2017-07-18 15:18:24
【问题描述】:
快速问题:我有一个带有成员变量的基类,我试图在派生类中“覆盖”这个值。我该怎么做?
我试过了:
class A
{
public:
double i = 1;
};
class B : public A
{
public:
double i = 2;
};
int main(int argc, char** argv)
{
B* b = new B();
A* a = b;
std::cout << b->i << '\t' << a->i << std::endl; // output 2 1
}
但所需的输出是“2 2”。 我做错了什么?
谢谢,
尼克拉斯
【问题讨论】:
-
使用虚函数。
-
你可以覆盖虚函数,而不是数据成员。
-
为什么不在
B的构造函数中给i赋值?
标签: c++ class polymorphism