C++ Classes and Objects

“हेलो दोस्तों! इस पोस्ट में हम ‘C++ प्रोग्रामिंग’ में उपयोग होने वाले Class और Objects के बारे में सीखेंगे। साथ ही, हम OOP (ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग) का परिचय प्राप्त करेंगे और Access Modifier (public, private, protected) के बारे में जानेंगे। C++ में क्लास और ऑब्जेक्ट्स ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) के मुख्य तत्व होते हैं। ये डेटा को संरचित करने और एक सुरक्षित तरीके से उपयोग करने में मदद करते हैं। OOP से संबंधित प्रश्न अक्सर परीक्षा और इंटरव्यू में पूछे जाते हैं, इसलिए इसे समझना आपके लिए बहुत फायदेमंद होगा। आइए इनको विस्तार से समझते हैं:

OOP का परिचय

ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) एक प्रोग्रामिंग System है, जिसमें डेटा और उसके Operands (Functions) को एक साथ रखा जाता है। OOP में चार मुख्य सिद्धांत होते हैं:

  1. Encapsulation: डेटा और फ़ंक्शंस को एक यूनिट (क्लास) में कवर करना।
  2. Inheritance: एक क्लास के गुणों को दूसरी क्लास में प्राप्त करना।
  3. Polymorphism: एक कार्य को कई रूपों में प्रदर्शन करना।
  4. Abstraction: जटिलता को छिपाना और आवश्यक जानकारी को बाहर निकालना।

इन सिद्धांतों का उद्देश्य कोड को अधिक सुरक्षित, पुनः Usability और व्यवस्थित बनाना है।


Class और Object क्या हैं?

  • क्लास (Class): क्लास एक blueprints (structure) होती है जिसमें एक जैसे गुण (Attributes) और कार्य (Methods) होते हैं। क्लास एक template की तरह होती है जिससे हम objects बना सकते हैं।
  • ऑब्जेक्ट (Object): Objects क्लास का एक उदाहरण (Instance) होता है। एक क्लास से कई objects बनाए जा सकते हैं, जो वास्तविक दुनिया की वस्तुओं को दर्शाते हैं।

Class का Declaration और Definition

Class को Declaration और Definition करना C++ में निम्न प्रकार से किया जा सकता है:

cpp (computersciencemcq.com)

#include <iostream>
using namespace std;

class Car {  // 'Car' नामक एक क्लास की घोषणा
    public:          // Access Modifier (Public)
        string color; // Attribute (गुण)
        
        void displayColor() { // Method (कार्य)
            cout << "Car का रंग: " << color << endl;
        }
};

कोड का विवरण:

  • class Car: Car एक class है।
  • public: यह एक Access Modifier है जो बताता है कि Class के सदस्य को class के बाहर से भी Access किया जा सकता है।
  • color: यह एक Attribute (गुण) है जो कार के रंग को स्टोर करता है।
  • displayColor(): यह एक Method (कार्य) है जो कार का रंग प्रदर्शित करता है।

Object का निर्माण (Object Creation)

object क्लास के आधार पर बनाए जाते हैं। ऊपर दिए गए Car क्लास से हम निम्न प्रकार से objects बना सकते हैं:

int main() {
    Car myCar;
    myCar.color = "लाल"; 
    myCar.displayColor();
    return 0;
}

Output:-

Car का रंग: लाल

इस प्रकार, myCar एक ऑब्जेक्ट है जो Car क्लास के गुणों और कार्यों का उपयोग कर सकता है।


Class और Objects के फायदे:-

C++ में class और objects के कई फायदे हैं, जो Object-Oriented Programming (OOP) के प्रमुख concepts को उपयोगी बनाते हैं। यहाँ कुछ महत्वपूर्ण लाभ दिए गए हैं:

  1. Data Encapsulation (डेटा को छिपाना)
    Class के माध्यम से data और functions को encapsulate किया जा सकता है, जिससे data को सीधे access नहीं किया जा सकता और सुरक्षा बढ़ती है। Encapsulation डेटा को accidental changes से बचाता है।
  2. Data Abstraction (डेटा का सार)
    Class के जरिये केवल जरूरी जानकारी को ही बाहर दिखाया जा सकता है और जटिलता को छिपाया जा सकता है। इससे code user-friendly और readable बनता है।
  3. Code Reusability (कोड पुनः उपयोग)
    Class को बार-बार इस्तेमाल किया जा सकता है। एक बार class बनाने के बाद उसे कई objects में उपयोग किया जा सकता है, जिससे code बार-बार लिखने की आवश्यकता नहीं रहती।
  4. Inheritance (विरासत)
    Inheritance के जरिये एक class की properties और methods को दूसरी class में इस्तेमाल किया जा सकता है। इससे code की पुनः उपयोगिता बढ़ती है और development तेज़ होता है।
  5. Polymorphism (बहुरूपता)
    Class में polymorphism का concept होता है, जिससे एक ही function का कई रूप हो सकते हैं। यह flexibility बढ़ाता है और functions को dynamic तरीके से उपयोग करने की क्षमता प्रदान करता है।
  6. Modularity (मॉड्युलरिटी)
    Classes से code को छोटे-छोटे modules में विभाजित किया जा सकता है। इससे code को समझना और manage करना आसान हो जाता है, और बड़ी projects में debugging और maintenance करना सरल होता है।
  7. Real-world Modeling (वास्तविक दुनिया का मॉडलिंग)
    Classes और objects का उपयोग real-world entities को code में represent करने के लिए किया जा सकता है, जैसे कि Car, Person, Bank Account आदि। इससे code को वास्तविक दुनिया की समस्याओं का समाधान करने के लिए इस्तेमाल करना आसान हो जाता है।
  8. Easy Maintenance and Debugging (आसान रखरखाव और डिबगिंग)
    Class-based structure में code का maintenance और debugging आसान होता है। अगर किसी functionality में बदलाव करना हो तो सीधे उस class में बदलाव किया जा सकता है, जिससे code maintainable रहता है।

इन फायदों के कारण C++ में class और objects का उपयोग code को structured, readable, reusable, और maintainable बनाने के लिए किया जाता है।


Access Modifiers (public, private, protected)

C++ में Access Modifiers डेटा की सुरक्षा के लिए उपयोग होते हैं। यह क्लास के विभिन्न सदस्यों की Accessibility को नियंत्रित करते हैं।

1. Public: पब्लिक मेंबर्स को क्लास के बाहर से भी एक्सेस किया जा सकता है।

class Example {
public:
    int data;
};

Example:-

Example obj;
obj.data = 10; // यह वैध है क्योंकि 'data' पब्लिक मेंबर है

2. Private: प्राइवेट मेंबर्स केवल उसी क्लास के अंदर एक्सेस किए जा सकते हैं। इन्हें क्लास के बाहर से सीधे एक्सेस नहीं किया जा सकता।

class Example {
private:
    int data;
public:
    void setData(int value) {
        data = value;
    }
    int getData() {
        return data;
    }
};

Example:-

Example obj;
obj.setData(10);   // यह वैध है
cout << obj.getData(); // प्राइवेट डेटा को एक्सेस करने का सही तरीका

3. Protected: प्रोटेक्टेड मेंबर्स को केवल उसी क्लास और उसकी सब-क्लासेज़ (derived classes) में एक्सेस किया जा सकता है।

class Example {
protected:
    int data;
};

संक्षेप में उदाहरण

cpp (computer science mcq)

#include <iostream>
using namespace std;

class Rectangle {
    private:
        int width, height; // Private attributes

    public:
        void setDimensions(int w, int h) { // Public method to set private attributes
            width = w;
            height = h;
        }

        int getArea() { // Public method to calculate area
            return width * height;
        }
};

int main() {
    Rectangle rect;
    rect.setDimensions(5, 10);
    cout << "आयत का क्षेत्रफल: " << rect.getArea() << endl;
    return 0;
}

आउटपुट:

आयत का क्षेत्रफल: 50

ऊपर दिए गए उदाहरण में:

  • width और height को private रखा गया है ताकि उन्हें सीधे Access न किया जा सके।
  • setDimensions और getArea पब्लिक हैं, जो इन प्राइवेट डेटा का उपयोग करते हैं।

इस प्रकार, क्लास और ऑब्जेक्ट्स C++ में डेटा और फ़ंक्शंस को संरक्षित और सुरक्षित तरीके से प्रबंधित करने के लिए उपयोग किए जाते हैं, जो OOP के चार मुख्य सिद्धांतों को लागू करने में मदद करते हैं।

People Also Ask

1. C++ में class और Object क्या है, और इनमें क्या अंतर है?
Class एक template या blueprint होती है जिससे objects बनाए जाते हैं। Object, class का एक instance है जिसमें class के data और functions को इस्तेमाल किया जा सकता है।

2. Access Specifiers क्या होते हैं?
Public, Private, और Protected access specifiers होते हैं जो class के members की accessibility को control करते हैं।

3. Object Oriented Programming के चार principles कौन-कौन से हैं?
Polymorphism, Encapsulation, Inheritance, और Abstraction OOP के चार मुख्य principles हैं।

Leave a comment