Access Modifiers in C++ ( public, private, protected )

Access modifiers are used to implement some important features of OOPs known as Data Abstraction, Data Hiding, Inheritance etc It means user can only see essential information and other details are kept hide in background. for example - Internal structure of a vehicle like engine, gear, brake etc are hidden from the driver. It sets some restrictions on the class members not to get directly accessed by the outside function/class. Access modifiers are also called scope,domains, sections, parts,visibility or access specifiers of a class.There are following 3 types of access modifiers available in C++:-
एक्सेस मोडीफायरस का प्रयोग OOPs के कुछ महत्वपूर्ण फीचर जैसे डाटा एब्सट्रैक्शन, डाटा हाईडिंग, इनहेरिटेंस इत्यादि लागु करने के लिए किया जाता है अर्थात यूजर केवल अनिवार्य जानकारियों को देख सकता है अन्य विस्तृत जानकारी को बैकग्राउंड में छुपा कर रखा जाता है। उदाहरण के लिए- किसी गाड़ी का आतंरिक ढांचा जैसे इंजन, गियर, ब्रेक प्रणाली वाहन चालक से छुपाकर रखी जाती है। यह क्लास के डाटा मेम्बर पर कुछ प्रतिबन्ध लागू करते है जिससे  की वह प्रत्यक्ष रूप से बाहर के फंक्शन या क्लास में एक्सेस ना हो सके। एक्सेस मोडीफायरस को क्लास के  स्कोप,डोमेन, सेक्शन, पार्टस, विजिबिलिटी या एक्सेस स्पेसीफायर के नाम से भी जाना जाता है। C++ में निम्न तीन प्रकार के एक्सेस मोडीफायरस उपलब्ध है:-                
1.) Public (पब्लिक)
2.) Private (प्राइवेट)
3.) Protected (प्रोटेक्टेड)


1.) Public:- Those data members and member functions of a class which are declared/defined in public section of class and directly accessible in other classes/functions through object of class are called public members. All those class members which are need to be access globally, are written in public section. Generally, this section will represent constructor, destructor, public interface and variables. Data members and member functions present in public section are not secured from external unauthorized access. So, it is major responsibility of programmer to decide that which variable or function should be kept in public section of class.
एक क्लास के वे डाटा मेम्बर्स एवं मेम्बर फंक्शनस जिन्हें पब्लिक सेक्शन में घोषित/परिभाषित किया गया है एवं जिनका प्रयोग अन्य क्लास/ फंक्शन द्वारा प्रत्यक्ष रूप से ऑब्जेक्ट बनाकर किया जा सकता है पब्लिक मेम्बर कहलाते है। वे सभी क्लास मेम्बर जिन्हें ग्लोबली एक्सेस करने की आवश्यकता होती है पब्लिक सेक्शन में लिखे जाते है। सामान्यतः यह सेक्शन कंस्ट्रक्टर, डीस्ट्रक्टर, पब्लिक इंटरफ़ेस एवं वेरिएबल्स को प्रदर्शित करने का कार्य करता है। डाटा मेम्बर्स एवं मेम्बर फंक्शनस जिन्हें पब्लिक सेक्शन में रखा गया है बाह्य अनाधिकृत एक्सेस से सुरक्षित नहीं होते है। अतः यह प्रोग्रामर की जिम्मेदारी है कि वह सुनुश्चित करे कि किस क्लास मेम्बर/फंक्शन को पब्लिक सेक्शन में रखा जाना चाहिए।        

2.) Private:- Those data members and member functions of a class which are declared/defined in private section of class and These members are not directly accessible in other classes/functions through object of class are called private members. Private members support data abstraction and data hiding concept of OOP’s. It means private data member or member functions are hidden and secured from unauthorized outside access. These members are accessible by public member function and friend function of that class. By default the access modifier for the class members will be private.
एक क्लास के वे डाटा मेम्बर्स एवं मेम्बर फंक्शनस जिन्हें प्राइवेट सेक्शन में घोषित/परिभाषित किया गया है एवं जिनका प्रयोग अन्य क्लास/ फंक्शन द्वारा प्रत्यक्ष रूप से ऑब्जेक्ट बनाकर नहीं किया जा सकता है प्राइवेट मेम्बर कहलाते है। प्राइवेट मेम्बर्स OOPs के डाटा एब्सट्रैक्शन एवं डाटा हाईडिंग सिद्धांत का समर्थन करते है अर्थात प्राइवेट डाटा मेम्बर्स एवं मेम्बर फंक्शनस बाह्य अनाधिकृत एक्सेस से छुपे हुए एवं सुरक्षित होते है। इन्हें क्लास के पब्लिक मेम्बर फंक्शन एवं फ्रेंड फंक्शन की सहायता से एक्सेस किया जा सकता है। सामान्यतया क्लास का एक्सेस मोडीफायर private होता है।  

3.) Protected:- Those data members and member functions which are shown in protected section and accessed by derived class of that class only are called protected member. It supports inheritance concept of OOP’s. It means protected members increase re-usability of program code which takes less time to develop a large program. For all other outside classes/functions, It behaves like private member of class. 
एक क्लास के वे डाटा मेम्बर्स एवं मेम्बर फंक्शनस जिन्हें प्रोटेक्टेड सेक्शन में घोषित/परिभाषित किया गया है एवं जिनका प्रयोग केवल डीराइवड क्लास में किया जा सकता है प्रोटेक्टेड मेम्बर कहलाते है। प्रोटेक्टेड मेम्बर्स OOPs के इनहेरिटेंस सिद्धांत का समर्थन करते है अर्थात प्रोटेक्टेड मेम्बर्स प्रोग्राम कोड के पुनः प्रयोग का समर्थन करते है जिससे बड़े प्रोग्राम को तैयार करने में कम समय लगता है। अन्य बाहरी क्लासेस/फंक्शनस के लिए ये क्लास के प्राइवेट मेम्बर की तरह व्यव्हार करते है।


















Syntax-

class class_name{
variable_declaration;
----------
----------
function_declaration/definition
protected:
variable_declaration;
----------
function_declaration/definition;
public:
variable_declaration;
----------
function_declaration/definition;
}obj1, obj2 , ....,objn;

In Other Functions(अन्य फंक्शन में):-

class_name object_name;

Example-

class employee{
private:
int empid;
char empname[20];
float salary;
void grosssalary();
public:
void getemp();
void setemp();
}e1,e2;

In Other Functions (अन्य फंक्शन में):-

employee e; // object (instance) of a class

No comments:

Post a Comment