250+ TOP MCQs on Derivation and Templates and Answers

This section on advanced C++ interview questions on “Derivation and Templates”. One shall practice these advanced C++ 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 advanced C++ questions come with detailed explanation of the answers which helps in better understanding of C++ concepts.

Here is a listing of advanced C++ interview questions on “Derivation and Templates” along with answers, explanations and/or solutions:

1. Which is dependant on template parameter?
a) base class
b) abstract class
c) method
d) static class
Answer: a
Clarification: Base class is dependant on template parameter.

2. Which value is placed in the base class?
a) derived values
b) default type values
c) both default type & derived values
d) null value
Answer: b
Clarification: We can place the default type values in a base class and overriding some of them through derivation.

3. How many bits of memory needed for internal representation of class?
a) 1
b) 2
c) 4
d) no memory needed
Answer: d
Clarification: classes that contain only type members, nonvirtual function members, and static data members do not require memory at run time.

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

  1.     #include 
  2.     using namespace std;
  3.     class class0 
  4.     {
  5.         public:
  6.         virtual ~class0(){}
  7.         protected:
  8.         char p;
  9.         public:
  10.         char getChar();
  11.     };
  12.     class class1 : public class0 
  13.     {
  14.         public:
  15.         void printChar();
  16.     };
  17.     void class1::printChar()
  18.     {
  19.         cout  << "True" << endl;
  20.     }
  21.     int main() 
  22.     {
  23.         class1 c;
  24.         c.printChar();
  25.         return 1;
  26.     }

a) True
b) error
c) no output
d) runtime error
Answer: a
Clarification: In this program, We are passing the values and inheriting it to the other class and printing the result.

$ g++ dert.cpp
$ a.out
True

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

  1.     #include 
  2.     using namespace std; 
  3.     template<typename T>class clsTemplate
  4.     {
  5.         public:
  6.         T value;
  7.         clsTemplate(T i)
  8.         {
  9.             this->value = i;
  10.         }
  11.     void test()
  12.     {
  13.         cout << value << endl;
  14.     }
  15.     };
  16.     class clsChild : public clsTemplate<char>
  17.     {
  18.         public:
  19.         clsChild(): clsTemplate<char>( 0 )
  20.         {
  21.         }
  22.         clsChild(char c): clsTemplate<char>( c )
  23.         {    
  24.         }
  25.     void test2()
  26.     {
  27.         test();
  28.     }
  29.     };
  30.     int main()
  31.     {
  32.         clsTemplate <int> a( 42 );
  33.         clsChild b( 'A' );
  34.         a.test();
  35.         b.test();
  36.         return 0;
  37.     }

a) 42
b) A
c)

42
A

d)

A
42

View Answer

Answer: c
Clarification: In this program, We are passing the values by using the template inheritance and printing it.
Output:

$ g++ dert.cpp
$ a.out
42
A

 
 

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

  1.     #include 
  2.     using namespace std;
  3.     template <class T>
  4.     class A
  5.     {
  6.         public:
  7.         A(int a): x(a) {}
  8.         protected:
  9.         int x;
  10.     };
  11.     template <class T>
  12.     class B: public A<char>
  13.     {
  14.         public:
  15.         B(): A<char>::A(100) 
  16.         {
  17.             cout << x * 2 << endl;
  18.         }
  19.     };
  20.     int main()
  21.     {
  22.         B<char> test;
  23.         return 0;
  24.     }

a) 100
b) 200
c) error
d) runtime error
Answer: b
Clarification: In this program, We are passing the values and manipulating it by using the template inheritance.
Output:

$ g++ dert2.cpp
$ a.out
200

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

  1.     #include 
  2.     using namespace std;
  3.     template <class type>
  4.     class Test
  5.     {
  6.         public:
  7.         Test();
  8.         ~Test();
  9.         type Data(type);
  10.     };
  11.     template <class type>
  12.     type Test<type>::Data(type Var0)
  13.     {
  14.         return Var0;
  15.     }
  16.     template <class type>
  17.     Test<type>::Test()
  18.     {
  19.     }
  20.     template <class type>
  21.     Test<type>::~Test()
  22.     {
  23.     }
  24.     int main(void)
  25.     {
  26.         Test<char> Var3;
  27.         cout << Var3.Data('K') << endl;
  28.         return 0;
  29.     }

a) k
b) l
c) error
d) runtime error
Answer: a
Clarification: In this program, We are passing the values and printing it by using template inheritance.
Output:

$ g++ dert3.cpp
$ a.out
k

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

  1.     #include 
  2.     using namespace std;
  3.     class Base
  4.     {
  5.         public:
  6.         Base ( )
  7.         {
  8.             cout << "1" << endl;
  9.         }
  10.         ~Base ( )
  11.         {
  12.             cout << "2" << endl;
  13.         }
  14.     };
  15.     class Derived : public Base
  16.     {
  17.         public:
  18.         Derived  ( )
  19.         {
  20.             cout << "3" << endl;
  21.         }
  22.         ~Derived ( )
  23.         {
  24.             cout << "4" << endl;
  25.         }    
  26.     }; 
  27.     int main( )
  28.     {
  29.         Derived x;
  30.     }

a) 1234
b) 4321
c) 1423
d) 1342
Answer: d
Clarification: In this program, We are printing the order of execution of constructor and destructor in the class.
Output:

$ g++ dert4.cpp
$ a.out
1342

9. How many kinds of entities are directly parameterized in c++?
a) 1
b) 2
c) 3
d) 4
Answer: c
Clarification: C++ allows us to parameterize directly three kinds of entities through templates: types, constants, and templates.

10. How many kinds of parameters are there in C++?
a) 1
b) 2
c) 3
d) 5
Answer: c
Clarification: There are three kinds of parameters are there in C++. They are type, non-type, template.

  250+ TOP MCQs on Sequences and Containers and Answers

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top