I am trying to learn C ++ and wrote this code. According to my oversight, this code should produce output like "Derived Class", but output "Base Class". Please help me figure this out.
#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();
}
Please consider me a newbie and explain why its conclusion "Base Class"
source
share