C++ Inheritance

C++
#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

C++
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