Friend Class A friend class can access private and protected members of other class in which it is declared as friend. It is sometimes useful to allow a particular class to access private members of other class. For example a LinkedList class may be allowed to access private members of Node.
Friend Function Like friend class, a friend function can be given special grant to access private and protected members. A friend function can be:
a) A method of another class
b) A global function
Following are some important points about friend functions and classes:
1) Friends should be used only for limited purpose. too many functions or external classes are declared as friends of a class with protected or private data, it lessens the value of encapsulation of separate classes in object-oriented programming.
2) Friendship is not mutual. If a class A is friend of B, then B doesn’t become friend of A automatically.
3) Friendship is not inherited (See this for more details)
4) The concept of friends is not there in Java.
A simple and complete C++ program to demonstrate friend Class
A simple and complete C++ program to demonstrate friend function of another class
B::b = 0
A simple and complete C++ program to demonstrate global friend
A::a = 0
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
- Can we access private data members of a class without using a member or a friend function?
- C++ Program to swap two members using Friend Function
- C++ interview questions on virtual function and abstract class
- How to convert a class to another class type in C++?
- std::any Class in C++
- std::string class in C++
- Array class in C++
- std:: valarray class in C++
- Structure vs class in C++
- String class in Java | Set 1
- Virtual base class in C++
- Difference between namespace and class
- Simulating final class in C++
- Why is the size of an empty class not zero in C++?
- Can a C++ class have an object of self type?