C++ Inheritance
#include <iostream>
using namespace std;
class Person {
protected:
string name;
public:
Person(string n) : name(n) {}
void intro() { cout << "I am " << name << endl; }
};
class Student : public Person {
int roll;
public:
Student(string n, int r) : Person(n), roll(r) {}
void show() { intro(); cout << "Roll no: " << roll << endl; }
};
int main() {
Student s("Meera", 21);
s.show();
}
I am Meera
Roll no: 21
Types of Inheritance
C++ supports single, multiple, multilevel, hierarchical and hybrid inheritance. Unlike Java, it allows multiple inheritance of classes.
Diamond Problem and Virtual Base Class
class A { public: int x = 5; };
class B : virtual public A {};
class C : virtual public A {};
class D : public B, public C {}; // only ONE copy of A thanks to 'virtual'
// D d; d.x -> 5 (no ambiguity)
Track your progress through the C++ course