Bird
Raised Fist0
C++programming~5 mins

Types of inheritance in C++ - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is single inheritance in C++?
Single inheritance is when a class inherits from only one base class. It means one child class extends one parent class.
Click to reveal answer
beginner
Explain multiple inheritance in C++.
Multiple inheritance is when a class inherits from more than one base class. The child class gets features from all parent classes.
Click to reveal answer
beginner
What is multilevel inheritance?
Multilevel inheritance is when a class inherits from a class which itself inherits from another class. It forms a chain of inheritance.
Click to reveal answer
beginner
Define hierarchical inheritance.
Hierarchical inheritance is when multiple classes inherit from a single base class. One parent class has many child classes.
Click to reveal answer
intermediate
What is hybrid inheritance in C++?
Hybrid inheritance is a combination of two or more types of inheritance. For example, combining multiple and multilevel inheritance.
Click to reveal answer
Which type of inheritance involves one class inheriting from multiple classes?
ASingle inheritance
BMultilevel inheritance
CMultiple inheritance
DHierarchical inheritance
In which inheritance type does a class inherit from a class that itself inherits from another class?
AMultilevel inheritance
BHierarchical inheritance
CHybrid inheritance
DSingle inheritance
What is the correct description of hierarchical inheritance?
AOne class inherits from multiple classes
BMultiple classes inherit from one class
CA class inherits from a class which inherits another
DCombination of multiple inheritance types
Which inheritance type is a mix of two or more inheritance types?
AHybrid inheritance
BSingle inheritance
CMultiple inheritance
DMultilevel inheritance
Single inheritance means:
AA class inherits from a derived class
BA class inherits from multiple base classes
CMultiple classes inherit from one class
DA class inherits from one base class
Describe the main types of inheritance in C++ and give a simple example for each.
Think about how many classes are involved and how they relate.
You got /5 concepts.
    Explain why hybrid inheritance might be used and what challenges it can bring.
    Consider both benefits and problems.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which type of inheritance involves a single derived class inheriting from one base class in C++?
      easy
      A. Hierarchical inheritance
      B. Multiple inheritance
      C. Multilevel inheritance
      D. Single inheritance

      Solution

      1. Step 1: Understand inheritance types

        Single inheritance means one class inherits from exactly one base class.
      2. Step 2: Match definition to options

        Only Single inheritance describes a single derived class inheriting from one base class.
      3. Final Answer:

        Single inheritance -> Option D
      4. Quick Check:

        One derived, one base = Single inheritance [OK]
      Hint: One derived from one base is single inheritance [OK]
      Common Mistakes:
      • Confusing multiple inheritance with single inheritance
      • Thinking multilevel means one base class only
      • Mixing hierarchical with single inheritance
      2. Which of the following is the correct syntax for multiple inheritance in C++?
      easy
      A. class Derived : public Base1 & Base2 {};
      B. class Derived : public Base1, public Base2 {};
      C. class Derived : Base1 Base2 {};
      D. class Derived inherits Base1, Base2 {};

      Solution

      1. Step 1: Recall multiple inheritance syntax

        In C++, multiple inheritance uses commas to separate base classes with access specifiers.
      2. Step 2: Check each option

        class Derived : public Base1, public Base2 {}; uses correct syntax: 'class Derived : public Base1, public Base2 {};'. Others have syntax errors.
      3. Final Answer:

        class Derived : public Base1, public Base2 {}; -> Option B
      4. Quick Check:

        Comma separates base classes with access specifiers [OK]
      Hint: Use commas and access specifiers for multiple inheritance [OK]
      Common Mistakes:
      • Omitting commas between base classes
      • Using '&' instead of commas
      • Writing 'inherits' keyword which doesn't exist in C++
      3. What will be the output of the following C++ code?
      class A { public: void show() { std::cout << "A"; } };
      class B : public A { public: void show() { std::cout << "B"; } };
      class C : public B {};
      int main() {
        C obj;
        obj.show();
        return 0;
      }
      medium
      A. B
      B. A
      C. C
      D. Compilation error

      Solution

      1. Step 1: Understand inheritance chain

        Class C inherits from B, which inherits from A. B overrides show() method.
      2. Step 2: Determine which show() is called

        Calling obj.show() on C calls B's show() because C inherits B's version and does not override it.
      3. Final Answer:

        B -> Option A
      4. Quick Check:

        Derived class method called if overridden [OK]
      Hint: Derived class method overrides base method unless not overridden [OK]
      Common Mistakes:
      • Assuming base class method runs instead of overridden
      • Expecting 'C' output though C has no show()
      • Thinking code causes compilation error
      4. Identify the error in this C++ code snippet involving inheritance:
      class Base { public: int x; };
      class Derived : Base {};
      int main() {
        Derived d;
        d.x = 1;
        return 0;
      }
      medium
      A. Main function missing return type
      B. Base class must be declared inside Derived
      C. Missing access specifier before Base in Derived class
      D. Derived class cannot be empty

      Solution

      1. Step 1: Check inheritance syntax

        In C++, inheritance requires an access specifier like public, private, or protected before base class name.
      2. Step 2: Identify the error

        Derived : Base {} lacks access specifier; should be Derived : public Base {}.
      3. Final Answer:

        Missing access specifier before Base in Derived class -> Option C
      4. Quick Check:

        Inheritance needs access specifier [OK]
      Hint: Always specify public/private/protected before base class [OK]
      Common Mistakes:
      • Omitting access specifier in inheritance
      • Thinking empty class body is error
      • Confusing return type in main function
      5. Given the following classes:
      class Animal { public: void eat() { std::cout << "Eating"; } };
      class Mammal : public Animal {};
      class Bird : public Animal {};
      class Bat : public Mammal, public Bird {};
      int main() {
        Bat b;
        b.eat();
        return 0;
      }

      What problem arises and how to fix it?
      hard
      A. Ambiguity error due to multiple inheritance; fix with virtual inheritance
      B. No problem; code runs fine
      C. Syntax error in Bat class declaration
      D. eat() method must be overridden in Bat

      Solution

      1. Step 1: Analyze inheritance structure

        Bat inherits Mammal and Bird, both inherit Animal, causing two Animal copies in Bat.
      2. Step 2: Identify ambiguity

        Calling b.eat() is ambiguous because Bat has two Animal parts; compiler error occurs.
      3. Step 3: Fix with virtual inheritance

        Use virtual inheritance for Mammal and Bird from Animal to share one Animal base.
      4. Final Answer:

        Ambiguity error due to multiple inheritance; fix with virtual inheritance -> Option A
      5. Quick Check:

        Diamond problem fixed by virtual inheritance [OK]
      Hint: Use virtual inheritance to solve diamond ambiguity [OK]
      Common Mistakes:
      • Ignoring diamond problem ambiguity
      • Thinking code compiles without error
      • Assuming method override fixes ambiguity
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard