Skip to main content

C++ code for Hybrid Inheritance

Here’s a C++ program that shows how a Research Scholar can inherit from both Student and Teacher, and how virtual inheritance solves the diamond problem:
#include <iostream>
using namespace std;

// Base class
class Person {
public:
    void introduce() {
        cout << "I am a person." << endl;
    }
};

// Derived class Student (virtual inheritance)
class Student : virtual public Person {
public:
    void study() {
        cout << "I am studying." << endl;
    }
};

// Derived class Teacher (virtual inheritance)
class Teacher : virtual public Person {
public:
    void teach() {
        cout << "I am teaching." << endl;
    }
};

// Derived class ResearchScholar (inherits from both Student and Teacher)
class ResearchScholar : public Student, public Teacher {
public:
    void research() {
        cout << "I am doing research." << endl;
    }
};

int main() {
    ResearchScholar rs;
    rs.introduce();   // From Person (diamond problem solved by virtual inheritance)
    rs.study();       // From Student
    rs.teach();       // From Teacher
    rs.research();    // Own method

    return 0;
}

Output

I am a person. I am studying. I am teaching. I am doing research.

Short Explanation

  • Person is the base class.

  • Both Student and Teacher inherit from Person.

  • ResearchScholar inherits from both Student and Teacher.

  • Without virtual inheritance, ResearchScholar would get two copies of Person, causing the diamond problem (ambiguity in calling introduce()).

  • Using virtual public Person, only one shared copy of Person exists, solving the issue.

Real-life analogy: A Research Scholar is both a Student and a Teacher, but still only one Person.

Thanks for reading 💗!


If you found this post useful:

⮕  Share it with others who might benefit.
⮕  Leave a comment with your thoughts or questions—I’d love to hear from you.
⮕  Follow/Subscribe to the blog for more helpful guides, tips, and insights.


Comments

Popular posts from this blog

Unsupervised Machine Learning — A Friendly, Step-by-Step Tutorial

Think of going into a library with only a single book there, and you are expected to arrange the books. You would most likely begin sorting books by appearance or feel, similar cover art or length or topic, although nobody informed you of the genres. It is the key idea of unsupervised learning: it seeks structure of data in case of no annotated responses. This tutorial explains what is meant by unsupervised learning and why this type of learning is alternative to supervised learning and provides a summary of the most common types of algorithms: Clustering and dimensionality reduction . It also introduces the mathematical intuition behind the underlying basic mathematics of such applications and provides line by line explanation of the K-Means and PCA algorithms in Python. What is Unsupervised Learning — and why it matters? Unsupervised learning Unsupervised learning refers to a group of methods used to determine patterns, clusters or order in data without any target labels. This i...

Introduction to Machine Learning – A Beginner’s Guide

The world we live in is a technologically oriented one. Apps that suggest songs, recommend movies, translate languages, identify our faces and even drive cars automatically are used every day. Behind all this progress is something called  Machine Learning (ML) . This blog will describe what Machine Learning is, how it functions, the variations, and the real life examples of this which we can see in our everyday lives in the most simplistic manner. What is Machine Learning? Suppose you have to teach a child to identify fruits. You do not give them a list of rules such as: An apple is round. A banana is long. A mango is yellow. Rather, you  show numerous pictures  of apples, bananas, and mangoes. After enough examples, the child starts to recognize them on their own. Machine Learning is precisely this. It is a way of training  computers to learn from data and examples instead of hard-coded rules . Instead of coding each step we allow the computer to identify patterns...

Why Python Is the Best Programming Language for Machine Learning, AI, and Deep Learning

  Artificial Intelligence (AI), Machine Learning (ML), and Deep Learning (DL) have become some of the most transformative technologies of our time. From self-driving cars and recommendation systems to chatbots and healthcare diagnostics, these technologies are reshaping industries at an incredible pace. But have you ever wondered: Why do most AI researchers, data scientists, and developers prefer Python over other programming languages? In this blog, we’ll explore in depth why Python has emerged as the most popular and powerful language for AI, ML, and DL development . 1. Simplicity and Readability – Focus on Problem Solving, Not Syntax Complex mathematics and algorithms are some of the greatest challenges that newcomers in the world of AI/ML face. Python eases this load by providing a clean syntax that is easy to read. Let’s look at three concrete examples where Python’s clean syntax helps newcomers in AI/ML handle complex mathematics and algorithms more easily compared to ot...