C++ में Access specifiers को Access modifiers के नाम से भी
जाना जाता है। यह keywords है जो program के अन्य भागों के लिए class members ( data members और member functions ) की accessibilty(पहुंच) को define करते है।
ये Class के बाहर इन members को control करते है और data hiding को लागू करते है
Types of access specifier in hindi
C++ में मुख्यत: 3 प्रकार के Access specifier होते है जो निम्न है।
1) public
2) private
3) protected
public
C++ में public access एक keyword है जिसका use, class members को declare करने के लिए किया जाता है जो आपके program में कही से भी accessible होते है अर्थात उसे class से बाहर भी access किया जा सकता है
किसी class के data members और member functions जिसे public, declare किया गया है उसे अन्य classes और functions के द्वारा access किया जाता है
किसी class के public members को उस class के object के साथ dot operator (.) का use करके program में कही से भी access किया जा सकता है।
Program to show Public access specifier
#include<iostream>
using namespace std;
class SI
{
public:
float principal, rate, time;
float calculatesi()
{
return principal*rate*time/100;
}
};
// main function
int main()
{
SI obj;
// accessing public datamember outside class
obj.principal = 10000.0;
obj.rate= 5.0;
obj.time = 2.0;
cout << "Simple interest is: " << obj.calculatesi();
return 0;
}
Output:
Simple interest is: 1000
Explanation:
1) SI class में principal amount, interest rate, और time period को store करने के लिए 3 public members: principal, interest और time period define किया जाता है
2) calculatesi() function, भी public member है जिसका उपयोग si = (principal * rate * time) / 100 formula का प्रयोग करके Simple interest की गणना करने के लिए है
3) main function में class SI का एक object 'obj' नाम से बनाया जाता है
obj के public members को निम्न प्रकार से सीधे ही value assign किया जाता है
obj.principal = 20000.0
obj.rate = 5.0
obj.time = 2.0
calculatesi() function को Simple interest की गणना करने के लिए obj का use करके call किया जाता है जिसके result को console में print करते है
private
Object-oriented programming, में private access specifier एक keyword है जिसका use एक class के members (variables और methods) के access को restrict करने मे होता है
जब किसी class के members को private, declare किया जाता है तब उसे उसी class के भीतर के member functions द्वारा access किया जाता है
इन्हे class के बाहर किसी अन्य objects या functions द्वारा सीधे access करने की अनुमति नहीं है
केवल उस class के member functions या friend function द्वारा ही, private data members को access करने की अनुमति होती है
Object-oriented programming, में private access specifier एक keyword है जिसका use एक class के members (variables और methods) के access को restrict करने मे होता है।
Program to show private access specifier
#include<iostream>
using namespace std;
class mynum {
// private member
private:
int num;
// public member
public:
void displaynum(int n) {
num = n;
cout << "number is = " << num << endl;
}
};
int main() {
// declare an object
mynum obj1;
obj1.displaynum(10);
return 0;
}
output:
number is = 10
Explanation:
1) private member variable:
`num` को `mynum` class की एक private member की तरह declare किया गया है इसका मतलब है कि इसे class के बाहर access नहीं किया जा सकता
2) public method:
`displaynum(int n)` एक public method है जो 'num' के value को set और print करता है
3) main function:
एक `mynum`class का एक object `obj1` का निर्माण किया जाता है
`displaynum` method को '15' value के साथ call किया जाता है और `num` को प्रदर्शित किया जाता है
public method `displaynum`, का use करके हम सही ढंग से private member `num` को encapsulate करते है और object-oriented programming के सिद्धांतो का पालन करते है
protected
C++, में protected access specifier का use, private के समान ही class members के access को restrict करने के लिए किया जाता है
जैसे कि वे केवल class के भीतर और derived (subclasses) classes द्वारा ही access किए जाते है
members जिन्हें protected declare किए जाते है उन्हे class के बाहर या उसके subclassess मे सीधे access नही किए जा सकते
protected access specifier का उपयोग करके, हम derived classes को base class के कुछ members के साथ interact करने की अनुमति देते हैं, जबकि इन members को बाकी class से छिपा कर रखते हैं।
#include<iostream>
using namespace std;
class mynum {
// protected member
protected:
int num;
};
class mynumchild:public mynum
{
// public member
public:
void displaynum(int n) {
num = n;
cout << "number is = " << num << endl;
}
};
int main() {
// declare an object of child class
mynumchild obj1;
obj1.displaynum(15);
return 0;
}
Output:
number is = 15
Explanation:
1) mynum class:
mynum class में एक int type कर एक member 'num' declare किया गया है
चुकि num को protected member की तरह declare किया गया है इसलिए इसे mynum class से बाहर access नहीं किया जा सकता
2) mynumchild class:
इसे mynum से publicly inherits किया जाता है इसमें एक member function displaynum define किया गया है जो एक int argument 'n' लेता है
displaynum, के भीतर n की value को, num को assign किया जाता है जो कि एक inherited protected member है
displaynum function, protected member, num को access कर सकताहै क्योंकि mynumchild, mynum class का Derived class है
3) main function:
mynumchild class का एक object obj1 का निर्माण किया जाता है
obj1 के द्वारा displaynum function को call किया जाता है और उसे 10 value एक argument की तरह assign किया जाता है
displaynum function के भीतर num को 10 value assign की जाती है और num की value को print की जाती है
अत: protected member num, mynumchild class (derived class) के भीतर access किया जाता है परंतु सीधे main function से नही
displaynum function protected member num को access और modify करने का एक नियंत्रित तरीका प्रदान करता है
Differences between public, private and protect ed access specifiers in Hindi
1)
public
public members, class के बाहर जिसमें अन्य classes और functions शामिल है access किए जा सकते हैं
private
private members केवल class अंदर access किए जा सकते हैं जहां वे declare किए गए होते हैं
protected
protected members, class और उसके subclasses के अंदर access किए जाते हैं
2)
public
public members, derived class द्वारा inherited किए जाते है और public accessibilty रखते हैं
private
private members, derived class द्वारा inherited नही किए जाते है
protected
protected members, derived class द्वारा inherited किए जाते है और protected accessibilty रखते हैं
3)
public
public members, class के objects का use करके या inheritance के द्वारा सीधे access हो सकते हैं
private
private members केवल उसी class के public member functions द्वारा access होते है
protected
protected members उसी class या उसके derived class के public या proteced member functions द्वारा access किए जा सकते हैं
4)
public
public members, class के बाहर modify हो सकते हैं
private
private members class के बाहर modify नही हो सकते हैं वे केवल member functions के द्वारा access और modify होते है
protected
protected members, class के बाहर modification के लिए private members के समान व्यवहार करते हैं लेकिन वे derived classes को access और modify करने की अनुमति देते है
5)
public
public members को वे सभी code दिखाई देते हैं जो class को access कर सकते हैं
private
private members को केवल class के भीतर ही दिखाई देते हैं
protected
protected members, class और उसके subclasses के भीतर दिखाई देते हैं लेकिन उन classes के बाहर code करने की अनुमति नहीं है
6)
public
public members, sensitive data और functionality को उजागर कर सकते हैं जिससे संभावित रूप से security risk पैदा हो सकता है
private
private members, sensitive data और implementation details को छुपा कर उसकी security बढाते है
protected
protected members, subclasses तक access को सीमित करते हुए सुरक्षा और लचीलेपन के बीच संतुलन प्रदान करते हैं
0 टिप्पणियाँ