What is a friend class in C++?

Table of Contents

Introduction:

In C++, a friend class is a mechanism that allows one class to access the private and protected members of another class. This feature provides a way to grant access beyond the usual encapsulation boundaries, which can be useful in scenarios where classes need to work closely together. This guide explains the concept of friend classes, including their syntax and practical applications.

Understanding Friend Classes

Friend classes in C++ are designed to grant access to private and protected members of a class to another class. This access is granted by declaring the other class as a friend within the class whose members are being accessed.

Syntax of Friend Class

To declare a friend class, you use the friend keyword inside the class whose members you want to grant access to. The friend class then gains access to all private and protected members of the class.

Syntax:

In this example, ClassB is declared as a friend of ClassA, allowing it to access the private member privateData of ClassA.

Example of Friend Class Usage

Example:

In this example, Bank is a friend class of Account. This allows Bank to directly modify and access the private balance member of Account.

Benefits and Use Cases

Friend classes can be beneficial in the following scenarios:

  • Tightly Coupled Classes: When two classes are closely related and need to access each other’s private members.
  • Operator Overloading: Often used in operator overloading where operators need access to private data of the classes they operate on.
  • Encapsulation and Control: Friend classes allow you to maintain encapsulation while providing controlled access to class internals.

Conclusion:

A friend class in C++ allows one class to access the private and protected members of another class. This feature is useful for closely related classes that need to share access to internal data. By declaring a class as a friend, you can grant it special access rights, facilitating more flexible interactions between classes while maintaining encapsulation. Understanding friend classes helps in designing more modular and cooperative class relationships in C++.

Similar Questions