我想學習C++,並編寫了這段代碼。根據我的理解,此代碼需要生成輸出爲"Derived Class"
,但輸出爲"Base Class"
。 請幫我理解這一點。在C++中瞭解繼承
#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"
@andy ..使其虛擬後,其輸出是「派生類基類」...但我期待只有「派生類」 – someone
@someone:爲什麼不呢?你寫了'cout << name <<「,」<< Base :: name << endl; '不'cout << name << endl' – AndyG