The private member function can not be accessed from outside the class. The non Member function can not access private data.
Sometimes there can be situation where we would like two classes to share a particular function.
In such a case, c++ allows the common function to be made friendly with both classes and so allows the function to have access to private data of the class.
Syntax:
class abc
{
........
.........
public:
friend void xyz( ); //declaration
};
The function definition does not use either keyword 'friend' or the scope resolution operator
Definition void xyz ( )
{
.................
..................
}
#include<iostream.h>
#include<conio.h>
class sample
{
int a;
int b;
public:
void setvalue( )
{
a=25;
b=40;
}
friend float mean(sample s);
};
float mean(sample s)
{
return float(s.a+s.b)/2.0;
}
void main( )
{
sample s1;
clrscr( );
s1.setvalue( );
mean(s1);
getch( );
}
Sometimes there can be situation where we would like two classes to share a particular function.
In such a case, c++ allows the common function to be made friendly with both classes and so allows the function to have access to private data of the class.
Syntax:
class abc
{
........
.........
public:
friend void xyz( ); //declaration
};
The function definition does not use either keyword 'friend' or the scope resolution operator
Definition void xyz ( )
{
.................
..................
}
#include<iostream.h>
#include<conio.h>
class sample
{
int a;
int b;
public:
void setvalue( )
{
a=25;
b=40;
}
friend float mean(sample s);
};
float mean(sample s)
{
return float(s.a+s.b)/2.0;
}
void main( )
{
sample s1;
clrscr( );
s1.setvalue( );
mean(s1);
getch( );
}
0 Comments:
Post a Comment