Friend Functions & Friend Classes

Introduction

Object Oriented Programming में data को सामान्यतः private रखा जाता है ताकि उसे सीधे class के बाहर से access न किया जा सके। लेकिन कुछ परिस्थितियों में यह आवश्यक हो जाता है कि कोई external function या दूसरी class उस private data को access कर सके।

इसी स्थिति को संभालने के लिए C++ में friend concept का उपयोग किया जाता है। Friend functions और friend classes को class के private और protected members को access करने की अनुमति दी जाती है, जिससे controlled access संभव हो पाता है।

Definition

Friend Function

Friend function वह function होता है जो class का member नहीं होता, लेकिन उसे class के private और protected members को access करने की अनुमति दी जाती है।

Friend Class

Friend class वह class होती है जिसके सभी member functions को किसी दूसरी class के private और protected members को access करने की अनुमति दी जाती है।

Friend Function का Syntax

class ClassName {
private:
int data;public:
friend void functionName(ClassName obj);
};

Friend Function का उदाहरण

#include <iostream>
using namespace std;

class Demo {
private:
int value;

public:
Demo() {
value = 10;
}

friend void show(Demo d);
};

void show(Demo d) {
cout << "Value: " << d.value;
}
int main() {
Demo d1;
show(d1);

return 0;
}

Output:

Value: 10

Working को समझना

  • show() class का member नहीं है
  • फिर भी यह private member value को access कर रहा है
  • क्योंकि इसे friend keyword के साथ declare किया गया है

Friend Class का Syntax

class A {
private:
int x;

friend class B;
};

Friend Class का उदाहरण

#include <iostream>
using namespace std;

class A {
private:
int data;

public:
A() {
data = 50;
} friend class B;
};

class B {
public:
void show(A obj) {
cout << "Data: " << obj.data;
}
};

int main() {
A a1;
B b1;

b1.show(a1);

return 0;
}

Output:

Data: 50

Friend Function और Friend Class में अंतर

आधारFriend FunctionFriend Class
प्रकारFunctionClass
AccessSpecific functionपूरी class
ScopeLimitedव्यापक
UseSpecific taskMultiple operations

Important Points

  • Friend function class का member नहीं होता
  • Friend class के सभी functions को access मिलता है
  • Friend declaration class के अंदर किया जाता है
  • यह encapsulation को break करता है, इसलिए सावधानी से उपयोग करना चाहिए

निष्कर्ष

Friend functions और friend classes C++ में controlled access प्रदान करते हैं, जिससे private data को आवश्यकतानुसार access किया जा सकता है। यह flexibility देता है, लेकिन इसका उपयोग सोच-समझकर करना चाहिए ताकि data security प्रभावित न हो।

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top