Thursday 9 March 2017

How Learn Friend Function Tccicomputercoaching.com



How Learn Friend Function

                                                                Tccicomputercoaching.com
In Object Oriented Programming non-member function can’t access private or protected data of class. This is good for security purpose but to follow this data hiding user has to write very lengthy and complex data, so to access this private and protected data there is one facility, that’s called friend function. So, the complier knows a given function is a friend function by the use of the keyword friend.
A friend function of a class is defined outside that class' scope but it has the right to access all private and protected members of the class.
A friend function is declared by the class that is granting access, so friend functions are part of the class interface, like methods. Friend functions allow alternative syntax to use objects, for instance f(x) instead of x.f(), or g(x,y) instead of x.g(y). Friend functions have the same implications on encapsulation as methods.
Declaration of friend function in C++
classclass_name
{
    ... .. ...
friendreturn_typefunction_name(argument/s);
    ... .. ...
}
Definition of Friend Function in C++
classclassName
{
    ... .. ...
friendreturn_typefunctionName(argument/s);
    ... .. ...
}

return_typefunctionName(argument/s)
{
    ... .. ...
    // Private and protected data of className can be accessed from
    // this function because it is a friend function of className.
    ... .. ...
}
Here, now function can access the private and protected data of that class.


To make function friend we can use friend keyword before function name.
class B;
class A {
private:
int num1;
public:
A(): num1(12) { }
      // friend function declaration
friendint add(A, B);
};

class B {
private:
int num2;
public:
B(): num2(1) { }
       // friend function declaration
friendint add(A , B);
};

// Function add() is the friend function of classes A and B
// that accesses the member variables num1 and num1
int add(A objectA, B objectB)
{
return (objectA.num1 + objectB.num2);
}

int main()
{
A a1;
Similarly, like a friend function, a class can also be made a friend of another class using keyword friend. For example:
... .. ...
class B;
class A
{
   // class B is a friend class of class A
friend class B;
   ... .. ...
}

class B
{
   ... .. ...
}

    B b1;
cout<<"Sum: "<< add(a1, b1);
return 0;
}
Output
Sum: 13
When a class is made a friend class, all the member functions of that class becomes friend functions.
Here, member function of class B can access all protected and private data of Class A.
If you like this post then please share and like this post.
Call us @ 98256 18292.

No comments:

Post a Comment