【发布时间】:2021-12-30 13:55:59
【问题描述】:
#include <iostream>
class A
{
public:
A(/* args */){};
virtual void p(){std::cout << "A\n";}
};
class B : public A
{
public:
B(/* args */){};
};
class C : public B
{
public:
C(/* args */){};
void p() override{std::cout << "C\n";}
};
int main(int argc, char const *argv[])
{
B test = C();
C test2 = C();
test.p();
test2.p();
return 0;
}
目前它打印: 一种 C
我想像'test'变量一样将C保存为B形式;但是调用函数的覆盖版本,现在它调用基版本。
【问题讨论】:
标签: c++ inheritance virtual