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

C++ Classes and Objects in Hindi

Class एक User defined data type है जो Objects के निर्माण के लिए एक Blue print की तरह कार्य करती है
यह उन Properties और Behaviours को Define करती है जो इससे निर्मित Objects में होंगे
Classes, Data members (variables) और Member functions (methods) को रखता है ये Member functions, Data members पर कार्य करते है
दूसरी तरफ एक Object, Class का Instances हैं यह data (attributes) और behaviours (methods) को एक entity में Encapsulate करते है।

इसका मतलब है कि Class, attributes (data) और methods (functions) को रखता है जो यह परिभाषित करता है कि Object क्या कर सकता है
 

Creating/Defining a Class - Class Define करना

एक Class का निर्माण करने या उसे Define करने के लिए 'class' keyword का Use किया जाता है उसके बाद Class का नाम लिखते हैं और Class की body curly braces {} के अंदर Define होते है जिसमे उसके Data members और members functions होते है।
और अंत मे semicolon( ;) लगाकर उसे समाप्त करते है
Syntax:
class NameofClass {
  // Data members
public:
  // Member functions
};

ऊपर Syntax में निम्न शमिल है
class
यह एक Class को Define करने के लिए Use किया गया keyword  है

NameofClass
यह Class को दिया गया नाम है 

{ }: 
Curly braces के भीतर Class members होते है जिसमे Data members(variables) और member functions(methods) शामिल होते हैं

Data members
यह Class के भीतर Declare किया गया variables हैं जो उस Class की Objects से जुड़े Data को represent करते हैं।

Member functions:
यह Class के भीतर Declare किया गया function हैं जो उस Class की Objects के behavior को Define करते है

public
यह एक Access specifier है जो यह निर्धारित करता है कि कौन सा members, Class के बाहर Access हो सकते हैं 
Example:

class MyClass 
{
private:
    int myNum; 
public:
    void displayValue() 
    {
        cout << "Value of myNum: " << myNum << endl;
    }
};

ऊपर के Example को निम्न प्रकार से समझते हैं

1) Class Declaration:
class MyClass {

एक नए Class को Define करने के लिए सबसे पहले 'class' keyword का Use किया जाता है किया जाता है
उसके बाद MyClass, Define हो रहे Class का नाम है 
   
2) Private Data Member:
   private:
       int myNum;

'private' 
यह keyword निर्धारित करता है कि myNum, member Class के भीतरी Access किया जाएगा

`int myNum': 
यह एक Integer variable के Declaration को बताता जिसका नाम ' 'myNum' है  यह Class का एक private member है 

3) Public member function:
   public:
       void displayValue()
     {
  cout << "Value of myNum: "<< myNum <<endl;
     }
   
`public:
यह keyword निर्दिष्ट करता है कि निम्नलिखित member (जैसे `displayValue()` function) Class के बाहर भी Access हो सकता है 

`void displayValue() { ... }`:
 यह `displayValue` नाम से एक member function Define करता है जो कुछ भी return नही (`void`) नही करता

displayValue() function के अंदर
'cout` output को display करता है  तथा `"Value of myNum" एक string literal है जो Print किया जाएगा

`<< myNum``myNum` की Value को output stream में Insert करेगा तथा
`<< endl`, एक newline character को Output stream में Insert करता  है जो Cursor को अगली लाइन की शुरुआत में ले जाता है।

4) Closing the Class Definition:
   };
यह semicolon, class definition की समाप्ति को बताता है।

Defining a Objects - एक Object define करना


C++ में एक object का निर्माण करना सरल है. आप Class का नाम तथा उसके बाद Object का नाम और वैकल्पिक रूप से उसके बाद parentheses का उपयोग करके Object का निर्माण कर सकते हैं

Syntax:
ClassName objectName; 
या
ClassName obj1, obj2,....objN;

Example:
उदाहरण के लिए आपके पास एक 'Mobile' नाम से एक Class और आप 'myMobile' नाम से एक Object बनाना चाहते हैं तो आप इसे निम्न प्रकार से कर सकते हैं

Mobile myMobile;
या
Mobile myMobile1, myMobile2, myMobile3;

एक बार Class का का निर्माण हो जाने के बाद आप उस Class के आधार पर जितने चाहे Objects ( जैसे myMobile1, myMobile2, myMobile3) बना सकते हैं

Accessing Data members of Class - Class के Data members को Access करना


C++ में एक Class के Data members को Dot (.) operator का Use करके Access किया जाता है

यह Operator आपको दोनो अर्थात एक Object के Member variables और Member functions को Access करने की अनुमति देता है

जब आप एक Class के एक Object निर्माण करते हैं तो आप सबसे पहले Object का नाम उसके बाद Dot operator और Variable के नाम के उपयोग करके सीधे ही इसके Member variables को Access कर सकते हैं

इसी प्रकार Member functions को Object के नाम के बाद Dot operator और function के नाम का उपयोग करके वैकल्पिक रूप से Parentheses के भीतर Arguments के साथ Access कर सकते है
Accessing Class members by using one object 
#include<iostream>
#include<string>
using namespace std;
class Details 
{
public:
    int myID; 
    string myName;   
};
int main() {
  Details myObj;
  myObj.myID = 101;
  myObj.myName = "Dolly"
  cout <<"ID : "<<myObj.myID << endl;
  cout << "Name: "<< myObj.myName << endl;
  return 0;
}
    
Output:
ID: 101
Name: Dolly

Explanation:
ऊपर के Program को निम्न प्रकार से समझते हैं

1) Class को Define करना
`Details` नाम से एक Class define किया जाता है जिसमे दो  public data members: एक integer `myID` नाम से और एक string `myName` नाम से होते है
    class Details 
    {
    public:
        int myID; 
        string myName;   
    };
    
2) Object का निर्माण करना
`main()` function, के अंदर एक `Details`, Class का object `myObj` नाम से बनाया जाता है
    Details myObj;
    
3) Value assign करना
Object `myObj`  का Use इसके Data members को Value Assign करने में किया जाता है

`myID` को `101`, और `myName` को  `"Dolly"` Value assign करते है

    myObj.myID = 101;
    myObj.myName = "Dolly";
   
4) Values को Display करना
`myID` और `myName` की Values को 'cout '  का Use करके print किया जाता है
cout << "ID : " << myObj.myID << endl;
cout << "Name: " << myObj.myName << endl;
    
Multiple objects
Class का निर्माण करने के बाद आप उस Class के आधार पर कई Objects का निर्माण कर सकते हैं

Accessing Class members by using many objects 
#include<iostream>
#include<string>
using namespace std;
class Student
{
public:
    string name;
    int age;      
};    
int main(){
Student s1, s2;
s1.name = "Rohit Kumar";
s1.age = 25;
s2.name = "Aman Singh";
s2.age = 30;

cout<<"First student's details"<<endl;
cout<<"Name: "<<s1.name<<endl;
cout<<"Age:"<<s1.age<<endl;
cout<<"Second student's details"<<endl;
cout<<"Name: "<<s2.name<<endl;
cout<<"Age: "<<s2.age<<endl<<endl;
return 0;
}
    
Output:
First student's details 
Name: Rohit Kumar 
Age: 25 

Second student's details 
Name: Aman Singh 
Age: 30

Accessing Member functions in Class- Class के Member functions को Access करना

एक Class में Member functions का Use उस Class के Data members को Access, Use, और Modify करने के लिए किया जाता है

हम Member functions को दो तरीको से Define कर सकते हैं

1) Class definition के अंदर
2) Class definition के बाहर

Class definition के अंदर

आप Class के अंदर Member functions को बिना पहले से Declare किए सीधे ही निम्न प्रकार से Define कर सकते हैं

Defining member functions Inside the class definition 
#include<iostream>
#include<string>
using namespace std;
class Book
{
public:
    int bookID;
    string author;
    
void greeting()
      {
       cout<<"Welcome to our Book store"<<endl;
      }
void bookDetails() 
     {
      cout << "Book ID is: " << bookID << endl;
      cout << "Author's name is: " << author << endl;
     }
};
int main() {
       Book obj1;
       obj1.bookID =10;
       obj1.author = "Rahul Gupta"; 
       obj1.greeting();
       obj1.bookDetails();
    return 0;
}
Output:
Welcome to our Book store
Book ID is: 10
Author's name is: Rahul Gupta

Explaination:

Class Definition
Class Definition को निम्न प्रकार से समझते हैं
a) Class Name:
 `Book` Class का नाम है

b) Public Members:
इसमें Member data(variables) और Member functions शामिल है

i) Variables:
 `int bookID`: 
Stores the bookID में book की ID को Store किया जाता है `string author`:
इसमें author के नाम को Store करते है 

ii) Functions:
`void greeting()`:
 यह function एक welcome message को print करता है

`void bookDetails()`: 
यह function, book की ID और author के नाम को print करती है

Main Function

a) Object का निर्माण:
`Book obj1`:
 `Book` class का एक  instance अर्थात object (obj1)बनाते हैं

b) उसकी Attributes/Properties को Set करना:
`obj1.bookID = 10`: 
 `obj1.author = "Rahul 
bookID और author को value assign करते है

c) functions/methods को Call करना:
 
i)`obj1.greeting()`: 
यह function call किए जाने पर एक welcome message प्रदर्शित करता है

ii) `obj1.bookDetails()`:
 यह function call किए जाने पर एक book का details प्रदर्शित करता है

ऊपर के Program को execute करने पर निम्न Output प्रदर्शित होता है

Welcome to our Book store
Book ID is: 10
Author's name is: Rahul Gupta

Class definition के बाहर

Member functions जो Class के अंदर Declare की जाते हैं उन्हें Class के बाहर अलग से Define किया जाता है 

यह Definiation सामान्य फंक्शन की तरह ही होती है सिर्फ एक अंतर या है कि Class के बाहर Define करने के लिए पहले Class का नाम तथा Scope resolution Operator(::)  के बाद function का नाम होता है

Defining member functions outside the class definition 
#include<iostream>
#include<string>
using namespace std;
class Book
{
public:
    int bookID;
    string author;
    void greeting();
    void bookDetails(); 
};    
//Functions defined outside the class definition
 void Book::greeting()
      {
      cout<<"Welcome to our Book store"<<endl
      }

  void Book::bookDetails() 
     {
      cout << "Book ID is: " << bookID << endl;
      cout << "Author's name is: " << author << endl;
      }
int main() {
    Book obj1;
    obj1.bookID =10;
    obj1.author = "Rahul Gupta"; 
    obj1.greeting();
    obj1.bookDetails();
    return 0;
}
Output:
Welcome to our Book store
Book ID is: 10
Author's name is: Rahul Gupta

Explanation:
ऊपर के Program में greeting() और bookDetails() दो Member functions को Class के अंदर Declare किया गया है और Class के बाहर Scope resolution Operators (::) का Use करके Define किया गया है

Differences between Class and Object in Hindi


1)
Class, Objects के निर्माण के लिए Blue print या Templates के समान कार्य करता है
Object, एक Class का Instance है

2)
Class, Data members और Member functions को रखता है
Object, अपने Class से Data members और Method को Inherits करता है

3)
Class, Runtime में Memory नही लेते है
Object, Intiate होने पर Memory लेता है

4)
Class, 'class' keyword का Use करके Declare किया जाता है
Object, को  'new' keyword का Use करके बनाया जा सकता है

5) 
Class, का Use कई Objects के निर्माण के लिए किया जा सकता है
Object, एक Class का विशिष्ट इंस्टेंस होता है

6)
Class में Static data members और methods हो सकते हैं
Object, अपनी Class के Static members को 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++ में 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 

> Friend Class in C++ in Hindi Practical सहित 

> 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  की संपूर्ण जानकारी