【发布时间】:2014-05-16 07:57:50
【问题描述】:
我正在尝试学习 C++,并编写了这段代码。根据我的理解,这段代码需要产生输出为"Derived Class",但输出为"Base Class"。
请帮助我理解这一点。
#include <iostream>
using namespace std;
class Base {
public:
char* name;
void display() {
cout << name << endl;
}
};
class Derived: public Base {
public:
char* name;
void display() {
cout << name << ", " << Base::name << endl;
}
};
int main() {
Derived d;
d.name = "Derived Class";
d.Base::name = "Base Class";
Derived* dptr = &d;
Base* bptr = dptr;
bptr->display();
}
请把我当作初学者,解释一下为什么它的输出是"Base Class"
【问题讨论】:
标签: c++ inheritance