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