Nested
class
When
one class become the member of another class then it is called Nested class and
the relationship is called containership.
(1)
By defining a class within another class
(2)
By declaring an object of a class as a member to another class
When
a class is declared with in another class, the inner class is called as Nested
class (ie the inner class) and the outer class is known as Enclosing class.
Nested class can be defined in private as well as in the public section of the
Enclosing class.
#include<iostream>
using namespace std;
class enclose
{
private:
int x;
class nest
{
private :
int y;
public:
int z;
void prn()
{
y=3;z=2;
cout<<"\n
The product of"<<y<<'*'<<z<<"=
"<<y*z<<"\n";
}
}; //inner class definition over
nest n1;
public:
nest n2;
void square()
{
n2.prn(); //inner class member function is called by its object
x=2;
n2.z=4;
cout<<"\n
The product of " <<n2.z<<'*'<<n2.z<<"=
"<<n2.z*n2.z<<"\n";
cout<<"\n
The product of " <<x<<'*'<<x<<"=
"<<x*x; }
}; //outer class
definition over
int main()
{
enclose e;
e.square(); //outer class member function is called
}
The product of 3*2=6
The product of 4*4=16
The product of 2*2=4
In
the above program the inner class nest is defined inside the outer class
enclose. nest is accessed by enclose by creating an object of nest
Whenever
an object of a class is declared as a member of another class it is known as a
container class. In the container-ship the object of one class is declared in
another class.
#include<iostream>
using namespace std;
class outer
{
int data;
public:
void get();
};
class inner
{
int value;
outer ot; // object
ot of class outer is declared in class inner
public:
void getdata();
};
void outer :: get()
{
cout<<"\nEnter
a value";
cin>>data;
cout<<"\nThe
given value is "<<data;
}
void inner :: getdata()
{
cout<<"\nEnter
a value";
cin>>value;
cout<<"\nThe
given value is "<<value;
ot.get(); //calling of get() of class outer in
getdata() of class inner
}
int main()
{
inner in;
in.getdata();
return 0;
}
Enter a value10
The given value is 10
Enter a value 20
The given value is 20
In
the above program class outer and inner are defined separately. But both the
classes are connected by the object 'ot'
which is a member of class inner
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.