Training Outcomes Within Your Budget!

We ensure quality, budget-alignment, and timely delivery by our expert instructors.

Share this Resource

Table of Contents

Friend Function and Class in C++

In C++, classes are created to package data and functions, protecting internal information from external interference. However, there are situations in which it is essential to have access to private members to improve functionality. This is when the Friend Function is utilised in C++. A Friend Function in C++ offers a means to bypass conventional access restrictions, enabling external functions or other classes to directly access private and protected members.  

Friend Functions are crucial for intricate operations as they improve the adaptability and interaction among classes due to their distinctive capability. Let's learn more about Friend Functions in C++ in depth to enhance your Programming skills. Are you ready to write more efficient and adaptable code in different scenarios?  

Table of Contents

1) Syntax of Friend Function in C++ 

2) Types of Friend Functions in C++ 

3) Friend Class in C++ 

4) Example of a Friend Function in C++ 

5) Advantages of Using Friend Functions 

6) Disadvantages of Using Friend Functions 

7) Conclusion 

Syntax of Friend Function in C++ 

In C++, a Friend Function's syntax begins with the ‘friend’ keyword within the class requiring access. It is stated as follows:
 

class ClassName { 

   friend ReturnType FunctionName(Parameters); 

}; 


A friend function in C++ is defined outside the class, similar to a typical function. The friend keyword allows this function to access the private and protected members of the class. It’s important to note that a friend function is not considered a member of the class it operates on, and it can be invoked without creating an object of that class. Understanding this syntax is crucial for effectively utilising friend functions in your C++ code. 

The structure of a friend function in C++ allows it to bypass the usual access restrictions of a class. Declaring a function as a friend grants it specific permission to access the class’s private and protected members. 

This declaration is placed within the class but does not make the function a member of the class. Instead, it permits external functions or separate classes to access data that would otherwise be inaccessible. This mechanism is particularly useful when multiple classes need to work closely together, facilitating smooth communication and cooperation.
 

C Programming Courses


Types of Friend Functions in C++ 

Different types of Friend Functions in C++ offer unique ways for functions to access private class members, boosting flexibility and inter-class communication. Let’s discuss two main types:  

1) Global Function as a Friend Function 

A standalone function outside any class can access private members of a class by using Global Function as a Friend Function. This kind is useful for operations that involve various classes, allowing for data manipulation without restrictions from classes. 

2) Member Function of Another Class as a Friend Function 

Allowing a member function from a different class to access private members is achieved by declaring it as a friend function. This category promotes intimate connections among classes, improving adaptability and teamwork. It supports encapsulation while enabling targeted access, simplifying communication and ensuring seamless operation among interconnected classes in C++. 

Transform your future with our C Programming Courses! Sign up today and learn the skills needed for a successful coding career. 

Friend Class in C++ 

A Friend Class can reach the private and protected members of another class if declared as a friend. This is especially helpful when a certain class requires direct access to the private and protected members of other classes. In the case of a LinkedList class, it might require access to the private members of a Node class. In C++, to define a ‘Friend Class’, you can use the friend keyword followed by the class name.
 

friend class class_name; // declared in the base class 


This declaration enables seamless interaction between classes while keeping encapsulation when needed. 

Example of a Friend Function in C++ 

Here's an example showcasing the use of a Friend Function in C++ to add the private values of two classes:
 

#include  

using namespace std; 

class ClassB; // Forward declaration of ClassB 

class ClassA { 

    private: 

        int valueA; 

    public: 

        ClassA() : valueA(5) { } // Constructor initialises valueA to 5 

        friend int addValues(ClassA, ClassB); // Friend function declaration 

}; 

class ClassB { 

    private: 

        int valueB; 

    public: 

        ClassB() : valueB(10) { } // Constructor initialises valueB to 10 

        friend int addValues(ClassA, ClassB); // Friend function declaration 

}; 

// Friend function definition that adds private members of ClassA and ClassB 

int addValues(ClassA a, ClassB b) { 

    return a.valueA + b.valueB; 

int main() { 

    ClassA a; 

    ClassB b; 

    cout << "Sum of values: " << addValues(a, b) << endl; 

    return 0; 


Output: 

Sum of values: 15 


In this example, the ‘addValues()’ function is a friend to both 'ClassA' and 'ClassB', allowing it to go into their private members and perform the addition. 

Transform Your Coding Skills with our C# Programming (C Sharp) Course today! 

Advantages of Using Friend Functions 

The Friend Function allows access to private data within classes, although it does come with certain drawbacks. Below are the main benefits of Friend Functions in C++: 

Advantages of Using Friend Functions

a) Direct Access: Friend Functions can access private members even without inheriting the class 

b) Bridge Classes: They act as a link between two groups by directly accessing their confidential information  

c) Operator Flexibility: They improve the versatility of overloaded operators  

d) Versatile Declaration: They may be defined within the public, private, or protected parts of a class 

Crack the Programming Code and hone your C skills with our C Programming Course – Sign up today! 

Disadvantages of Using Friend Functions 

While Friend Functions facilitate unique access capabilities in C++, they also come with notable cons that impact class design and security. Let's discuss them here: 

Disadvantages of Using Friend Functions 

a) Data Breach: Friend Functions breach data hiding by gaining access to private members external to the class.  

b) No Polymorphism: Their lack of support for run-time polymorphism restricts their dynamic behaviour. 

Conclusion 

We hope this blog has provided you with a thorough understanding of the Friend Function and how it enables informed decisions. It serves as a powerful tool that facilitates interaction between classes by granting way into private members without inheritance. By mastering this concept, you can enhance the flexibility and efficiency of your code. 

Become a Coding Pro with our C++ Programming (C Plus Plus) Course – Register now! 

Frequently Asked Questions

Why do we Need Friend Functions? faq-arrow

Friend Functions are required to access private members of a class without inheritance, boosting inter-class communication and flexibility. 

When is it Appropriate to Use Friend Functions? faq-arrow

Use Friend Functions when classes need direct access to each other's private data or for overburdening operators without inheritance. 

Are Friend Functions Slower Than Member Functions? faq-arrow

Friend Functions are not inherently slower than member functions; their performance is similar, as per the implementation. 

What are the Other Resources and Offers Provided by The Knowledge Academy? faq-arrow

The Knowledge Academy takes global learning to new heights, offering over 30,000 online courses across 490+ locations in 220 countries. This expansive reach ensures accessibility and convenience for learners worldwide. 

Alongside our diverse Online Course Catalogue, encompassing 19 major categories, we go the extra mile by providing a plethora of free educational Online Resources like News updates, Blogs, videos, webinars, and interview questions. Tailoring learning experiences further, professionals can maximise value with customisable Course Bundles of TKA. 

What is The Knowledge Pass, and How Does it Work? faq-arrow

The Knowledge Academy’s Knowledge Pass, a prepaid voucher, adds another layer of flexibility, allowing course bookings over a 12-month period. Join us on a journey where education knows no bounds. 

What are the Related Courses and Blogs Provided by The Knowledge Academy? faq-arrow

The Knowledge Academy offers various C Programming Courses, including the C++ Programming (C Plus Plus) Course, C Programming Course, and C# Programming (C Sharp) Course. These courses cater to different skill levels, providing comprehensive insights into Operations Management. 

Our Programming & DevOps Blogs cover a range of topics related to C++, offering valuable resources, best practices, and industry insights. Whether you are a beginner or looking to advance your Programming skills, The Knowledge Academy's diverse courses and informative blogs have got you covered. 

Upcoming Programming & DevOps Resources Batches & Dates

Date

building C Programming
C Programming

Thu 23rd Jan 2025

C Programming

Thu 27th Mar 2025

C Programming

Thu 15th May 2025

C Programming

Thu 17th Jul 2025

C Programming

Thu 25th Sep 2025

C Programming

Thu 13th Nov 2025

Get A Quote

WHO WILL BE FUNDING THE COURSE?

cross

BIGGEST
BLACK FRIDAY SALE!

red-starWHO WILL BE FUNDING THE COURSE?

close

close

Thank you for your enquiry!

One of our training experts will be in touch shortly to go over your training requirements.

close

close

Press esc to close

close close

Back to course information

Thank you for your enquiry!

One of our training experts will be in touch shortly to go overy your training requirements.

close close

Thank you for your enquiry!

One of our training experts will be in touch shortly to go over your training requirements.