250+ TOP MCQs on Multiple Inheritance and Answers

This section on C++ programming questions and answers on “Multiple Inheritance”. One shall practice these questions to improve their C++ programming skills needed for various interviews (campus interviews, walkin interviews, company interviews), placements, entrance exams and other competitive exams. These questions can be attempted by anyone focusing on learning C++ programming language. They can be a beginner, fresher, engineering graduate or an experienced IT professional. Our C++ programming questions come with detailed explanation of the answers which helps in better understanding of C++ concepts.

Here is a listing of C++ programming questions on “Multiple Inheritance” along with answers, explanations and/or solutions:

1. What is meant by multiple inheritance?
a) Deriving a base class from derived class
b) Deriving a derived class from base class
c) Deriving a derived class from more than one base class
d) Deriving a derived base class
Answer: c
Clarification: Multiple inheritance enables a derived class to inherit members from more than one parent.

2. Which symbol is used to create multiple inheritances?
a) Dot
b) Comma
c) Dollar
d) star
Answer: b
Clarification: For using multiple inheritance, simply specify each base class (just like in single inheritance), separated by a comma.

3. Which of the following advantages we lose by using multiple inheritances?
a) Dynamic binding
b) Polymorphism
c) Both Dynamic binding & Polymorphism
d) Constructor
Answer: c
Clarification: The benefit of dynamic binding and polymorphism is that they help making the code easier to extend but by multiple inheritance it makes harder to track.

4. What will be the output of the following C++ code?

  1.     #include 
  2.     using namespace std;
  3.     class polygon 
  4.     {
  5.         protected:
  6.         int width, height;
  7.         public:
  8.         void set_values (int a, int b)
  9.         { 
  10.             width = a; height = b;}
  11.         };
  12.         class output1 
  13.         {
  14.             public:
  15.                 void output (int i);
  16.         };
  17.     void output1::output (int i) 
  18.     {
  19.         cout << i << endl;
  20.     }
  21.     class rectangle: public polygon, public output1 
  22.     {
  23.         public:
  24.         int area ()
  25.         { 
  26.             return (width * height); 
  27.         }
  28.     };
  29.     class triangle: public polygon, public output1 
  30.     {
  31.         public:
  32.         int area ()
  33.         {
  34.             return (width * height / 2); 
  35.         }
  36.     };
  37.     int main () 
  38.     {
  39.         rectangle rect;
  40.         triangle trgl;
  41.         rect.set_values (4, 5);
  42.         trgl.set_values (4, 5);
  43.         rect.output (rect.area());
  44.         trgl.output (trgl.area());
  45.         return 0;
  46.     }

a) 20
b) 10
c)

   20
   10

d) 30
Answer: c
Clarification: We are using the multiple inheritance to find the area of rectangle and triangle.
Output:

$ g++ mul.cpp
$ a.out
20
10

5. What will be the output of the following C++ code?

  1.     #include 
  2.     using namespace std;
  3.     class Base
  4.     {
  5.         public:
  6.         virtual void print() const = 0;
  7.     };
  8.     class DerivedOne : public Base
  9.     {
  10.         public:     
  11.         void print() const
  12.         {
  13.             cout << "DerivedOnen";
  14.         }
  15.     };
  16.     class DerivedTwo : public Base
  17.     {
  18.         public:
  19.         void print() const
  20.         {
  21.             cout << "DerivedTwon";
  22.         }     
  23.     }; 
  24.     class Multiple : public DerivedOne, public DerivedTwo
  25.     {
  26.         public:
  27.         void print() const
  28.         {
  29.             DerivedTwo :: print();
  30.         } 
  31.     }; 
  32.     int main()
  33.     {
  34.         int i;
  35.         Multiple both; 
  36.         DerivedOne one; 
  37.         DerivedTwo two; 
  38.         Base *array[ 3 ]; 
  39.         array[ 0 ] = &both; 
  40.         array[ 1 ] = &one;
  41.         array[ 2 ] = &two;
  42.         array[ i ] -> print();
  43.         return 0;
  44.     }

a) DerivedOne
b) DerivedTwo
c) Error
d) DerivedThree
Answer: c
Clarification: In this program, ‘Base’ is an ambiguous base of ‘Multiple’. So it is producing an error. And this program is a virtual base class.

6. What will be the output of the following C++ code?

  1.     #include 
  2.     using namespace std;
  3.     class student
  4.     {
  5.         public:
  6.         int rno , m1 , m2 ;
  7.         void get()
  8.         {
  9.             rno = 15, m1 = 10, m2 = 10;
  10.         }
  11.     };
  12.     class sports
  13.     {
  14.         public:
  15.         int sm;
  16.         void getsm()
  17.         {
  18.             sm = 10;
  19.         }
  20.     };
  21.     class statement:public student,public sports
  22.     {
  23.         int tot,avg;
  24.         public:
  25.         void display()
  26.         {
  27.             tot = (m1 + m2 + sm);
  28.             avg = tot / 3;
  29.             cout << tot;
  30.             cout << avg;
  31.         }
  32.     };
  33.     int main()
  34.     {
  35.         statement obj;
  36.         obj.get();
  37.         obj.getsm();
  38.         obj.display();
  39.     }

a) 3100
b) 3010
c) 2010
d) 1010
Answer: b
Clarification: In this program, We are calculating the total and average marks of a student by using multiple inheritance.
Output:

$ g++ mul1.cpp
$ a.out
3010

7. What will be the output of the following C++ code?

  1.     #include 
  2.     using namespace std;
  3.     struct a
  4.     {
  5.         int count;
  6.     };
  7.     struct b
  8.     {
  9.         int* value;
  10.     };
  11.     struct c : public a, public b
  12.     {
  13.     };
  14.     int main()
  15.     {
  16.         c* p = new c;
  17.         p->value = 0;
  18.         cout << "Inherited";
  19.         return 0;
  20.     }

a) Inherited
b) Error
c) Runtime error
d) inherited
Answer: a
Clarification: In this program, We apply the multiple inheritance to structure.
Output:

$ g++ mul2.cpp
$ a.out
Inherited