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;
};
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 कर सकते हैं
0 टिप्पणियाँ