2. class Base{
private : int bpriv;
protected : int bprot;
Public : int bpub;
};
class Derived : public Base{
};
Sikander 2
int main( )
{
cout << sizeof(Derived) << endl;
}
3. class Base
{
};
class Derived : public
Base
{
};
Sikander 3
class Base
{
int b;
};
class Derived : public Base
{
};
class Base {
};
class Derived : public Base {
int d;
};
4. class Base
{
private : int privBase;
protected : int protBase;
public : int pubBase;
};
class Derived : public Base
{
public : void derFunc( )
{
1. privBase = 5;
2. protBase = 10;
3. pubBase = 15;
}
};
Sikander 4
int main( )
{
Derived dobj;
4. dobj.privBase = 5;
5. dobj.protBase = 10;
6. dobj.pubBase = 15;
}
5. class Base
{
private : int privBase;
protected : int protBase;
public : int pubBase;
};
class Derived : protected Base
{
public : void derFunc( )
{
1. privBase = 5;
2. protBase = 10;
3. pubBase = 15;
}
};
Sikander 5
int main( )
{
Derived dobj;
4. dobj.privBase = 5;
5. dobj.protBase = 10;
6. dobj.pubBase = 15;
}
6. class Base
{
private : int privBase;
protected : int protBase;
public : int pubBase;
};
class Derived : private Base
{
public : void derFunc( )
{
1. privBase = 5;
2. protBase = 10;
3. pubBase = 15;
}
};
Sikander 6
int main( )
{
Derived dobj;
4. dobj.privBase = 5;
5. dobj.protBase = 10;
6. dobj.pubBase = 15;
}
7. class Base {
private : int privBase;
protected : int protBase;
public : int pubBase;
};
class Derived : private Base{
public : void derivedFunc( ) {
1. privBase = 5;
2. protBase = 10;
3. pubBase = 15;
}
};
class Der : public Derived {
public : void derFunc( ) {
4. privBase = 5;
5. protBase = 10;
6. pubBase = 15;
}
};
Sikander 7
class Base {
private : int privBase;
protected : int protBase;
public : int pubBase;
};
class Derived : public Base{
public : void derivedFunc( ) {
1. privBase = 5;
2. protBase = 10;
3. pubBase = 15;
}
};
class Der : public Derived {
public : void derFunc( ) {
4. privBase = 5;
5. protBase = 10;
6. pubBase = 15;
}
};
8. struct Base
{
public : int a;
};
struct Derived : Base
{
};
int main( )
{
Derived d;
d.a = 5;
}
Sikander 8
class Base
{
public : int a;
};
class Derived : Base
{
};
int main( )
{
Derived d;
d.a = 5;
}
9. struct Base
{
public : int a;
};
class Derived : Base
{
};
int main( )
{
Derived d;
d.a = 5;
}
Sikander 9
class Base
{
public : int a;
};
struct Derived : Base
{
};
int main( )
{
Derived d;
d.a = 5;
}
10. class Base {
public :
Base( ) { cout <<"Base DefaultConstructor n“; }
~Base( ) { cout <<"Base Destructor n“; }
};
class Derived : public Base
{
public : Derived( ) { cout <<"Derived Constructor n“; }
~Derived( ) { cout <<"Derived Destructor n“; }
};
int main( )
{
Derived dobj;
}
Sikander 10
11. class Base {
public :
Base( ) { cout <<"Base DefaultConstructor n“; }
Base(int x) { cout <<"Base Para Constructor n“; }
};
class Derived : public Base
{
public : Derived(int x)
{
cout <<"Derived Constructor n“;
}
};
int main( )
{
Derived dobj = Derived(5);
}
Sikander 11
12. class B2{
int b2;
};
Sikander 12
class B1{
int b1;
};
class D : public B1 , public B2 {
int d;
};
int main( ){
cout << sizeof(D) << endl;
}
13. class B2{
public : int b;
};
Sikander 13
class B1{
public : int b;
};
class D : public B1 , public B2 {
public : int d;
};
1. Can we inherit from two classes if they have members with same name?
2. Class D has two copies of b (1 from B1 and 1 from B2) or only one copy.
3. How to access the member b of B1 and member b of B2 in main.
14. class B2{
public : int b;
B2() {
b = 10;
}
};
Sikander 14
class B1{
public : int b;
B1( ){
b = 5;
}
};
class D : public B1 , public B2 {
public : int d;
void display( )
{
// Write code to Access value of b from class B1
// Write code to Access value of b from class B2
}
};
int main( )
{
D obj;
obj.display( );
}
15. class B2 : public B
{
};
Sikander 15
class B1 : public B
{
};
class D : public B1 , public B2 {
};
class B{
public : int arr[10];
};
int main( ){
cout << sizeof(B) << endl;
cout << sizeof(B1) << endl;
cout << sizeof(B2) << endl;
cout << sizeof(D) << endl;
}
16. class Player{
int playerid;
};
class Batsman : public Player {
int runs;
};
class Bowler : public Player {
int wickets;
};
class Allrounder : public Batsman , public Bowler
{
};
int main( )
{
cout << sizeof(Allrounder);
}
Sikander 16
17. class Player{
int playerid;
public : Player( ) { cout <<“Player Constructor n” };
};
class Batsman : public Player {
int runs;
};
class Bowler : public Player {
int wickets;
};
class Allrounder : public Batsman , public Bowler
{
};
int main( )
{
Allrounder ar1;
}
Sikander 17
18. class Base
{
public :
int base;
Base(int x = 0) : base ( x)
{ }
};
class Derived : public Base
{
public :
int der;
Derived(int x = 0) : der(x)
{ }
};
int main( )
{
Derived d(5);
cout << d.base << endl;
cout << d.der << endl;
}
Sikander 18
19. class Base {
public :
int base;
Base( ) : base(0)
{ cout <<"Base default Constructor “ <<endl; }
Base(int x) : base ( x)
{ cout <<"Base Parameterised Constructor " << x << endl; }
};
class Derived : public Base {
public : int der;
Derived(int x = 0) : der(x)
{ cout <<"Derived " << x << endl; }
};
int main( ) {
Derived d(5);
cout << d.base << endl;
cout << d.der << endl;
}
Sikander 19
20. class A{
public : void display( );
void print( );
};
Sikander 20
class B{
public : void display( );
void print(int x);
};
Is print function overloaded?
As we have two display functions with same
signature, will it throw an error?
21. classA{
public : void display( );
void print( );
};
Sikander 21
class B : public A{
public : void display( );
void print(int x);
};
Is print function overloaded?
As we have two display functions with same
signature, will it throw an error?
22. classA{
public : void display( );
void print( );
};
Sikander 22
class B : public A{
public : void display( );
void print(int x);
};
int main( )
{
B obj;
1. obj.print( );
2. obj.print(10);
}
23. classA{
public : void display( )
{
cout<<“Base Display”;
}
};
Sikander 23
class B : public A{
public :
void display( )
{
cout<<“Derived Display”;
}
};
int main( )
{
A tiger;
B cat;
tiger.display( );
cat.display();
tiger = cat; // Is this valid
tiger.display( );
}
24. class Base
{ protected : int bdata;
public : Base(int x ) { bdata = x; }
void display()
{ cout<<"n BASE DISPLAY bdata ="<<bdata<<endl; }
};
class Derived : public Base
{ private: int ddata;
public : Derived(int x ,int y ) : Base(x)
{ ddata = y; }
void display()
{
cout<<"n DERIVED DISPLAY "<<endl;
cout<<"bdata = "<<bdata<<endl;
cout<<"ddata = "<<ddata<<endl;
}
};
int main()
{
Base bObj(5);
Derived dObj(2,4);
bObj.display();
dObj.display();
bObj = dObj;
bObj.display();
return 0;
}
25. class Base
{
public :
void display()
{
cout<<“BASE FUNCTION "<<endl;
}
};
class Derived : public Base
{public:
void display()
{
cout<<“Derived Function "<<endl;
}
};
1. int main()
2. {
3. Base bObj;
4. Derived dObj;
5. Base *bptr;
6. Derived *dptr;
7. bptr = &dObj;
8. bptr->display( );
9. dptr = &bObj;
10. dptr->display( );
11. return 0;
12. }
26. class Base
{
public :
virtual void display()
{
cout<<“BASE FUNCTION "<<endl;
}
};
class Derived : public Base
{public:
void display()
{
cout<<“Derived Function "<<endl;
}
};
1. int main()
2. {
3. Base bObj;
4. Derived dObj;
5. Base *bptr;
6. Derived *dptr;
7. bptr = &bObj;
8. bptr->display( );
9. bptr = &bObj;
10. bptr->display( );
11. bObj = dObj;
12. bObj.display();
13. return 0;
14. }
27. class Base{
public : void display( )
{ cout <<"Base Display n“; }
};
class Derived : public Base {
public : void display( )
{ cout <<"Derived Display n“; }
};
int main( )
{
Base *pb;
pb = new Base;
pb->display( );
pb = new Derived;
pb->display( );
}
Sikander 27
29. When you create an Object dynamically, are constructors invoked?
As the base pointer is pointing to dynamic object, will it invoke only base
constructor , only derived constructor or base and derived constructor.
Is the destructor invoked?
Sikander 29
class Base
{
public : Base() {cout <<"Base Constructor n";}
public : ~Base() {cout <<"Base Destructor n";}
};
class Derived : public Base
{
public : Derived () {cout <<"Derived Constructor n";}
public : ~Derived () {cout <<"Derived Destructor n";}
};
int main()
{
Base *bp = new Derived();
}
30. class Base
{
public : Base() {cout <<"Base Constructor n";}
public : ~Base() {cout <<"Base Destructor n";}
};
class Derived : public Base
{
public : Derived () {cout <<"DerivedConstructor n";}
public : ~Derived () {cout <<"Derived Destructor n";}
};
int main()
{
Base *bp = new Derived();
delete bp;
}
Sikander 30
31. class Base
{
1. public : virtual Base( );
2. virtual ~Base();
3. virtual static void display( );
4. virtual void print( ) const ;
};
Sikander 31
32. class B{
public : virtual void display()
{
}
};
int main( )
{
cout << sizeof(B) << endl;
}
Sikander 32
class A{
public : void display()
{
}
};
int main( )
{
cout << sizeof(A) << endl;
}
33. class B{
int a;
int b;
public : virtual void display()
{
}
};
int main( )
{
cout << sizeof(B) << endl;
}
Sikander 33
class A{
int a;
int b;
public : void display()
{
}
};
int main( )
{
cout << sizeof(A) << endl;
}
34. class Student
{
int regno;
char name[20];
public :
virtual void read( );
virtual void display( );
virtual ~Student( );
};
int main( )
{
cout << sizeof(Student);
}
Sikander 34
35. class Base
{
public : virtual void display( ) {}
virtual ~Base( ) { }
};
class Derived : public Base
{
public : virtual void print( ) {}
};
int main( )
{
cout << sizeof(Base) << endl;
cout << sizeof(Derived) << endl;
}
Sikander 35
36. 1. classA{
2. public : virtual void display( ) {
3. cout <<"A display n";
4. }
5. };
6. class B : publicA{
7. public : virtual void display( ) {
8. cout <<"B display n";
9. }
10. };
11. void myfunc(A &ref)
12. {
13. ref.display( );
14. }
15. int main( )
16. {
17. A a;
18. B b;
19. myfunc(a);
20. myfunc(b);
21. }
Sikander 36
1. When you receive by reference, will it
performObject Slicing.
2. Ref.display( ) will always invoke
function of classA or it depends of
type of object passed?
37. class Base
{
public : void display( );
virtual void print( );
virtual void read( );
};
class Derived : public Base
{
public : void display( );
virtual void print( );
};
Sikander 37
38. class Base
{
public : void display( );
virtual void print( );
virtual void read( );
};
class Derived : public Base
{
public : void display( );
virtual void print( );
};
Sikander 38
int main( )
{
Base *bptr = new Derived();
bptr->display( );
bptr->print( );
bptr->read( );
}
39. class Shape
{
public : int area( ) = 0;
};
class Rectangle : public Shape
{
int m_l , m_b;
public : Rectangle(int l , int b ) {
m_l = l , m_b = b;
}
int area( ){
return m_l * m_b;
}
};
Sikander 39
int main( )
{
Shape *ps = new Rectangle(4 , 5);
cout << ps->area( );
}
40. class Shape
{
public : virtual int area( ) = 0;
};
class Rectangle : public Shape
{
int m_l , m_b;
public : Rectangle(int l , int b ) {
m_l = l , m_b = b;
}
int area( ){
return m_l * m_b;
}
};
Sikander 40
int main( )
{
Rectangle r(4 , 5);
Shape &s = r;
cout << s.area( );
}