Skip to main content

C++: 5. Friend function

If a function is defined as a friend function in C++, then the protected and private data of a class can be accessed using the function.

By using the keyword friend compiler knows the given function is a friend function.

For accessing the data, the declaration of a friend function should be done inside the body of a class starting with the keyword friend.

Syntax:-

class class_name    
{    
    friend data_type function_name(argument/s);            // syntax of friend function.  
};    

Example:- 
#include <iostream>    
using namespace std;    
class Box    
{    
    private:    
        int length;    
    public:    
        Box(): length(0) { }    
        friend int printLength(Box); //friend function    
};    
int printLength(Box b)    
{    
   b.length += 10;    
    return b.length;    
}    
int main()    
{    
    Box b;    
    cout<<"Length of box: "<< printLength(b)<<endl;    
    return 0;    
}    

Output:- 
Length of box: 10  


Characteristics of a Friend function:
  1. The function is not in the scope of the class to which it has been declared as a friend.
  2. It cannot be called using the object as it is not in the scope of that class.
  3. It can be invoked like a normal function without using the object.
  4. It cannot access the member names directly and has to use an object name and dot membership operator with the member name.
  5. It can be declared either in the private or the public part.
Length of box: 10  
Length of box: 10  Length of box: 10  


Comments

Popular posts from this blog

Prompt Engineering for Web Developers: Work Smarter with AI 🚀

   AI is changing the way web applications are built. From generating components and writing tests to planning projects and reviewing code, developers can now use natural language prompts to accelerate development. This approach, often called Vibe Coding, allows developers to describe what they want and let AI generate the solution. The secret to getting quality results is Prompt Engineering : the practice of writing better prompts. 📌 The RTCF Framework A simple framework for creating effective prompts is RTCF : Role → Who should AI act as? Task → What needs to be done? Context → Why is it needed? Format → How should the output look? ❌ Weak Prompt Make me a learning app. ✅ Strong Prompt Role: Senior React Developer Task: Build a React Learning Planner Context: Users need to track learning resources through stages Format: React, Tailwind CSS, drag-and-drop, modern UI, no TypeScript Providing clear instructions dramatically improves AI o...

💰 Managing Finances

Most people focus on earning more, but real wealth is built through smart investing, risk management, and disciplined financial habits. Here's a simple framework to help secure your financial future. 🎯 1. Set Financial Goals First Invest with a purpose: Emergency Fund Home Purchase Child Education Retirement Financial Independence ⚠️ 2. Control Lifestyle Inflation ✅ Good Debt Home Loan Business Loan Education Loan ❌ Bad Debt Credit Card Loan Personal Loan Consumer EMIs Rule: Keep total EMIs below 40% of monthly income . 🛡️ 3. Create an Emergency Fund Maintain 6 months of household expenses in: Fixed Deposits (FD) or Sweep-In Account Arbitrage Mutual Fund (tax-efficient for higher tax brackets) Post Office Deposits This should be your first financial priority. ❤️ 4. Protect Before You Invest Term Insurance Coverage: 10-15× Annual Income/CTC Health Insurance Keep a personal family floater policy. Do not rely only on employer...

JS: Cheatsheet

   Datatypes Difference Between Var, Let and Const Functions and its types Asynchronous operations in JS