You are on page 1of 2

Date : 07-02-2023

use of access specifier in inheritence


------------------------------------------
class Base
{
private:
int a1;
protected :
int a2;
public:
Base() { a2=10; a3=20; }
int a3;
};
class Sub:public Base
{
private :
int b1;
protected:
int b2;
public:
int b3;
void disp()
{
cout<< endl<<" a2= "<<a2 <<" a3= "<<a3;
}
};
class T{

public:
void show()
{ Base b1;
cout<<endl<<" from class T "<<b1.a3 ; //here public member a3 of class
Base is used in class T
}
};
int main()
{
Sub obj;
obj.disp(); obj.a3=30; T t1; t1.show();
return 0;
}
-------------------------------------------------------
class Base
{
private:
int a1;
protected :
int a2;
public:
Base() { a2=10; a3=20; }
int a3;
};
class Sub:private Base //accessing parent class privately , so a2 and a3 variable
will become private in Sub class
{
private :
int b1;
protected:
int b2;
public:
int b3;
void disp()
{
cout<< endl<<" a2= "<<a2 <<" a3= "<<a3;
}
};
class T:public Sub
{
public:
void show1() { cout << a2; // will give error as a2 is not accessible within
class T
}
};

int main()
{
T t1; t1.disp();
return 0;
}
---------------------------------Base class
Initializaion---------------------------------

Constructor will never participate in inheritence means child class can not
inherite constructor of parent class

class A
{
int a1; char ch;
public:
A(char x, int y)
{
cout <<endl<<"Constructor of class A..";
ch=x; a1=y;
}
void disp(){ cout<<endl<< "ch = "<<ch << " a1 = "<<a1 ; }
};
class B:public A
{
public:
B(int a, char b):A(b,a) // base class initialization
{ cout <<endl<<"constructor of B class .. " ;}
};
int main()
{
B b1(45,'P'); b1.disp();
return 0;
}

You might also like