C++ में Friend Class की संपूर्ण जानकारी हिंदी में 

What is Friend Class in C++ in Hindi

C++, में एक Friend Class दो Classes के बीच एक विशेष Relationship होता है।

यह Friend function की तरह ही एक Class को, अन्य Class के Private तथा Protected members को Access करने की अनुमति देता है।

जब एक Class को एक Friend की तरह Declare किया जाता है, तब यह अन्य Class के Private variables और functions को देख तथा सुधार सकता है।


यह तब उपयोगी होता है जब दो Classes को एक साथ मिलकर कार्य करने की आवश्यकता होती है
और एक-दूसरे के Private data को Access करने की आवश्यकता होती है। 
Syntax:
class ClassName {
friend class FriendClass-Name;
};

ऊपर Syntax में class एक Keyword है।
ClassName, उस Class का नाम है जो Friendship प्रदान कर रहा है
FriendClassName, उस Class का नाम है जिसे friendship प्रदान की जा रही है।
Program for Friend Class  
#include<iostream>
using namespace std;
class SecondClass;class FirstClass{
int x;
friend class SecondClass;

};

class SecondClass{
public:void Display(FirstClass t1 ) {

t1.x = 20;
cout<<"Value of x is: "<<t1.x;
}
};
int main(){

FirstClass obj1;
SecondClass obj2;

obj2.Display(obj1);
return 0;
}

Output:
Value of x is: 20

Explanation:
1) Class को declare करना 
 `FirstClass` को एक Private member variable `x` और एक friend class `SecondClass` के साथ Declare किया गया।

- `SecondClass` को एक Public method `Display` के साथ Declare किया गया जो `FirstClass` के object को Parameter की तरह लेता है। 

2) Friend class relationship:
 `SecondClass` को `FirstClass` के Friend की तरह Declare करने के द्वारा हम, `SecondClass` को FirstClass की Private members को Access करने की अनुमति देते हैं।

यह `SecondClass` को FirstClass के Private member `x` को Modify और Access करने की अनुमति देता है।

3) Method को implement करना: 
SecondClass का `Display` method `FirstClass` के Object को एक Parameter की तरह लेता है।
 
Method के अंदर FirstClass के Private member x को 20 Value assign किया जाता है। उसके बाद x की Value को cout का Use करके Console में Print किया जाता है।

4) Main function:
इसके अन्दर `FirstClass` और `SecondClass` के Objects का निर्माण किया जाता है।

SecondClass के Display method को FirstClass के Object obj को Argument की तरह Pass करते हुए Call किया जाता है।

यह `SecondClass` को Friend class Relationship के कारण FirstClass के Private member `x` को Access और Modify करने की अनुमति देता है।

Advantages of Friend Class in C++ in Hindi

C++ में Friend class के निम्न फायदे या उपयोग है

1) Friend classes सीधे अन्य Class के Private और Protected data को Access कर सकते है।

2) Friend classes को कई Classes में पुन: उपयोग किया जा सकता है। 

3) यद्यपि ये Private data को Access करते है तब भी ये Data safety(Data Encapsulation) को बनाए रखते है

4) Friend classes, Code को Maintain करना आसान बनाता है 

5) वे दो या अधिक Classes को Private data को share की अनुमति देते हुए एक साथ कार्य करना आसान बनाते हैं।
 
6) Private data के Direct access होने से Program तेजी से Run होता है, क्योंकि यह अतिरिक्त function Call की जरुरत को कम कर देता है।

7) ये Class में बिना बदलाव किए उसके Private data को Use करते हुए एक Class में अतिरिक्त features को Add कर सकता है।

8) केवल विशेष classes को Private data को Access करने की अनुमति दी जाती है जो यह सुनिश्चित करता है कि केवल Trusted classes ही उसे Use कर सके

Friend classes का Use कब करना चाहिए 

1) Friend classes का Use उस समय करना चाहिए जब दो Classes बहुत नजदीकी से जुड़े है और उन्हे Private information को share करने की जरुरत है।

2) जब एक Class में Special operations, जैसे Overloading operators Perform करने की जरुरत है तब Friend class का Use करे 

3) Classes के बीच Complex relationship को सरल बनाने के लिए Friend Classes का उपयोग करें।

4) एक Class के Private parts में कार्य करने के लिए लिए Friend Classes का उपयोग करें।

5) Inherited classes में Private information को Access करने के लिए Friend Classes का उपयोग करें। 

6) Classes के बीच नियंत्रित तरीके से Data share करने के लिए Friend Classes का उपयोग करें।

7) Access की अनुमति देते हुए Private information की सुरक्षा के लिए Friend Classes का उपयोग करें। 

Difference between Friend Class and Friend Function in C++ in Hindi

1) 
Friend classes 

Friend classes, Class के सभी Members को Access कर सकते हैं
Friend functions

Friend functions 
Friend function को केवल members को ही Access करना होता 

2) 
Friend classes 
Friend classes को Class के अंदर`friend` keyword का Use करके declare किया जाता है।

Function friend 
Friend functions को Class के अंदर declare और बाहर define किया जाता है।
 
3) 
Friend classes 
Friend classes, Derived classes, द्वारा Inherit नही किया जा सकता है।

Friend functions
Friend functions inherit हो सकता है

4) 
Friend classes 
Friend classes, Class के सभी Members functions को Access करता है।

Friend functions
Friend functions केवल उसी Member function को Access कर सकता है जिसके लिए उसे Access प्रदान किया जाता है।

5) 
Friend classes 
Friend classes, Class के Constructor और Destructor को Access करता है।

Friend function
Friend functions, Class के Constructor और Destructor को Access नही कर सकता है 

6) 
Friend classes 
Friend classes का Use Classes के बीच एक close relationship को प्रदर्शित करने के लिए किया जाता है।

Friend function
Friend functions का Use एक function को विशेष Access प्रदान करने में किया जाता है।

 Related Posts

> C++ क्या है? उसके इतिहास, गुण, उपयोग, फायदे और नुकसान 

> Basic structure of C++ Program 

> C++ में Tokens क्या है? और उसके प्रकार

> C++ Variables क्या है?, उसके प्रकार, उसे कैसे Declare, Define करते हैं

> C++ में Constants क्या है? उसके प्रकारों की संपूर्ण जानकारी

> C++ में Basic Input और Output (cin,cout,cerr) की जानकारी

> Data type in C++ की संपूर्ण जानकारी 

> C+ में Operators और उसके प्रकार जानें Practical सहित 

> C++ में Conditional और उसके प्रकारों को जानें Practical सहित 

> C++ में Looping statements और उसके प्रकार Practical सहित 

> C++ में Jump Statements और उसके प्रकारों की संपूर्ण जानकारी Practical सहित

> C++ में Array क्या है? और उसके प्रकारों की जानकारी Practical सहित

> C++ में Function क्या है उसके प्रकार, उपयोग प्रोग्राम सहित 

> C++ में Structure क्या है Practical सहित

> OOPs Concepts in C++ in Hindi- C++ में OOPs के बारे में

> Oops के फायदे और नुकसान की जानकारी 

> OOP और POP के बीच अंतर 

> C++ में Class और Object की सम्पूर्ण जनकारी

> C++ में Array of Objects क्या है? 

> C++ में Pointers, Pointer to an objects, Pointer to an Array की संपूर्ण जानकारी हिंदी में।

C++ में Passing objects क्या है

> C++ में Reference और Type Casting की संपूर्ण जानकारी

> C++ में Access specifier की संपूर्ण जानकारी 

> C++ में Static Data Members और Member Functions के बारे में Practical सहित 

> C++ में Memory allocation और Memory management operators (new और delete) Practical सहित 

> Friend Function in C++ in Hindi 

> Inline function in C++ in Hindi 

> Function Overloading in C++ in Hindi Practical सहित 

> Operator Overloading in C++ in Hindi Practical सहित 

> C++ में Constructor क्या है और उसके प्रकारों की संपूर्ण जानकारी

> C++ में Destructor क्या है ?उसकी संपूर्ण जानकारी

> C++ मे Inheritance क्या है उसके प्रकारों को जानें प्रोग्राम सहित

> C++ में Polymorphism क्या है? और उसके प्रकारों को जानें

> C++ में Virtual function की संपूर्ण जानकारी

> C++ में File handling की संपूर्ण जानकारी 

> C++ में Exception handling  की संपूर्ण जानकारी