I am trying to learn C++, and wrote this code. According to my understaing this code need to produce output as "Derived Class" but output is "Base Class". Please help me understand this.
#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 as a beginner and explain why its output is "Base Class"