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: 10Simple 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 செய்ய இயலும்.
இது பற்றிய தங்களின் கருத்துகளை இங்கே பதிவிடுங்கள் . இது பயனுள்ளதாக விரும்பினால் மற்றவர்களுக்கும் இதை share செய்யுங்கள்.
Comments