Friend Function in C++ Tamil

ஒரு class-ல் உள்ள private மற்றும் protected data-வை அந்த class-ல் உள்ள function மட்டுமே access செய்யமுடியும். private data-வை வேறு ஒரு class-ன் function-லிருந்து access செய்ய இயலாது. இந்த நிலையில் ஒரு function-ஐ friend function என்று வரையருக்கபட்டால் இந்த friend function-ஐ வைத்து வேறு class-ல் உள்ள private மற்றும் protected data-வை access செய்ய இயலும். இதுவே friend function என்று அழைக்கபடுகிறது.

ஒரு function முன்பு friend என்ற keyword-ஐ பயன்படுத்தினால் அந்த function, friend function என்று compiler புரிந்துகொள்ளும். data-வை access செய்துகொள்ள இந்த friend function-ஆனது ஒரு class-ன் உள்ளே declare செய்திருக்க வேண்டும். அது private அல்லது public, இதில் எங்கு வேண்டுமானாலும் "friend" என்ற keyword-ஐ பயன்படுத்தி declare செய்துகொள்ளலாம்.

Syntax of Friend Function.

class class_name{    
    friend data_type function_name(argument/s);   
};  

C++ Program for friend function

#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

Simple example when the function is friendly to two classes.

#include <iostream> 
using namespace std;  
class B;          // forward declarartion.  
class A{  
    int x;  
    public:  
    void setdata(int i){  
        x=i;  
    }  
    friend void min(A,B);         // friend function.  
};  
class B{  
    int y;  
    public:  
    void setdata(int i){  
        y=i;  
    }  
    friend void min(A,B);                    // friend function  
};  
void min(A a,B b){  
    if(a.x <=b.y)  
    std::cout  < < a.x  < < std::endl;  
    else  
    std::cout  < < b.y  < < std::endl;  
}  
   int main(){  
   A a;  
   B b;  
   a.setdata(10);  
   b.setdata(20);  
   min(a,b);  
    return 0;  
 }  

Output:

10

மேலே கொடுக்கப்பட்டுள்ள example-லில், main() function இரண்டு class-களுக்கும் friend-ஆக செயல்படுகிறது. அதாவது main() function இரண்டு class-களில் உள்ள private data-வை access செய்கிறது.

Friend class

ஒரு class-ஐ friend என்று class என்று வரையருக்கபட்டால், அது மற்ற class-ல் உள்ள private மற்றும் protected data-வை access செய்ய முடியும்.

C++ Program For Friend Class

#include <iostream> 
using namespace std;  
class A{  
    int x =5;  
    friend class B;           // friend class.  
};  
class B{  
  public:  
    void display(A &a){  
        cout<<"value of x is : "<<a.x;  
    }  
};  
int main(){  
    A a;  
    B b;  
    b.display(a);  
    return 0;  
}  

Output:

value of x is : 5

மேலே கொடுக்கப்பட்டுள்ள example-லில், class B-ஆனது class A-னுள் friend-ஆக declare செய்யப்பட்டுள்ளது. ஆகவே class B-ஆனது class A-ன் friend ஆகும். Class B-ஆல் class A-ல் உள்ள private member-களை access செய்ய இயலும்.

Comments

Vini 31st May,2023 03:01 pm
Very useful...