Multiple Inheritance C++ MCQ

Errorlogger
0
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) None of the mentioned

Answer:c


2. Which symbol is used to create multiple inheritance?
a) Dot
b) Comma
c) Dollar
d) None of the mentioned

Answer:b


3. Which of the following advantages we lose by using multiple inheritance?
a) Dynamic binding
b) Polymorphism
c) Both a & b
d) None of the mentioned

Answer:c


4. What is the output of this program?
  1.     #include <iostream>
  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) None of the mentioned

Answer:c


5. What is the output of this program?
  1.     #include <iostream>
  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 << "DerivedOne\n";
  14.         }
  15.     };
  16.     class DerivedTwo : public Base
  17.     {
  18.         public:
  19.         void print() const
  20.         {
  21.             cout << "DerivedTwo\n";
  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) None of the mentioned

Answer:c


6. What is the output of this program?
  1.     #include <iostream>
  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


7. What is the output of this program?
  1.     #include <iostream>
  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) None of the mentioned

Answer:a


8. What is the output of this program?
  1.     #include <iostream>
  2.     using namespace std;
  3.     class Base1
  4.     {
  5.         protected:
  6.         int SampleDataOne;
  7.         public:
  8.         Base1()
  9.         {
  10.             SampleDataOne = 100;
  11.         }
  12.         ~Base1()
  13.         {
  14.         }
  15.         int SampleFunctOne()
  16.         {
  17.             return SampleDataOne;
  18.         }
  19.     };
  20.     class Base2
  21.     {
  22.         protected:
  23.         int SampleDataTwo;
  24.         public:
  25.         Base2()
  26.         {
  27.             SampleDataTwo = 200;
  28.         }
  29.         ~Base2()
  30.         {
  31.         }
  32.         int SampleFunctTwo()
  33.         {
  34.             return SampleDataTwo;
  35.         }
  36.     };
  37.     class Derived1 : public Base1, public Base2
  38.     {
  39.         int MyData;
  40.         public:
  41.         Derived1() 
  42.         {
  43.             MyData = 300;
  44.         }
  45.         ~Derived1()
  46.         {
  47.         }    
  48.         int MyFunct()
  49.         {
  50.             return (MyData + SampleDataOne + SampleDataTwo);
  51.         }
  52.     };
  53.     int main()
  54.     {
  55.         Base1 SampleObjOne;
  56.         Base2 SampleObjTwo;
  57.         Derived1 SampleObjThree;
  58.         cout << SampleObjThree.Base1 :: SampleFunctOne() << endl;
  59.         cout << SampleObjThree.Base2 :: SampleFunctTwo() << endl;
  60.         return 0;
  61.     }
a) 100
b) 200
c) Both a & b
d) None of the mentioned

Answer:c


9. Which design patterns benefit from the multiple inheritance?
a) Adapter and observer pattern
b) Code pattern
c) Glue pattern
d) None of the mentioned

Answer:a


10. What are the things are inherited from the base class?
a) Constructor and its destructor
b) Operator=() members
c) Friends
d) All of the mentioned

Answer:d
Tags

Post a Comment

0Comments

Post a Comment (0)

#buttons=(Accept !) #days=(30)

Our website uses cookies to enhance your experience. Check Now
Accept !