Defining a Class
The building block of Object-Oriented Programming in C++.
Defining a Class
Class C++ में Object-Oriented Programming (OOP) का एक fundamental concept है। Class एक blueprint (खाका) या template है जिसका उपयोग objects बनाने के लिए किया जाता है। Class के अंदर data members और member functions को define किया जा सकता है।
उदाहरण के लिए, यदि हमें students की information को program में represent करना है, तो हम Student नाम की एक class बना सकते हैं। इसमें roll number, name और marks जैसे data members तथा display() जैसे member functions हो सकते हैं।
Syntax of a Class
C++ में class को define करने के लिए class keyword का उपयोग किया जाता है। Class definition के अंत में semicolon ; लगाना आवश्यक है।
class ClassName
{
// Data members
// Member functions
};
यहाँ ClassName class का नाम है। Class के braces { } के अंदर data members और member functions define किए जाते हैं।
Simple Class Definition
निम्न example में Student नाम की एक simple class define की गई है:
#include <iostream>
using namespace std;
class Student
{
public:
int rollNo;
float marks;
void display()
{
cout << "Roll No: " << rollNo << endl;
cout << "Marks: " << marks;
}
};
int main()
{
Student s;
s.rollNo = 101;
s.marks = 85.5;
s.display();
return 0;
}
Roll No: 101
Marks: 85.5
यहाँ Student एक class है और s Student class का object है। Object के माध्यम से data members को values दी गई हैं और display() member function को call किया गया है।
Components of a Class
एक class में मुख्य रूप से निम्न components हो सकते हैं:
- Data Members
- Member Functions
- Access Specifiers
Data Members
Data Members वे variables होते हैं जो class के objects का data या state store करते हैं। ये किसी object की characteristics को represent कर सकते हैं।
उदाहरण:
class Student
{
public:
int rollNo;
string name;
float marks;
};
यहाँ rollNo, name और marks data members हैं।
Member Functions
Member Functions वे functions होते हैं जो class के अंदर define किए जाते हैं और class के data members पर operations कर सकते हैं।
class Student
{
public:
int marks;
void display()
{
cout << "Marks: " << marks;
}
};
यहाँ display() एक member function है जो marks की value को display करता है।
Access Specifiers
C++ में access specifiers यह निर्धारित करते हैं कि class के members को program के किस हिस्से से access किया जा सकता है। C++ में मुख्य तीन access specifiers हैं:
- public
- private
- protected
1. public
public members को class के बाहर से भी access किया जा सकता है। यदि class में कोई access specifier नहीं दिया गया है, तो class के members default रूप से private होते हैं।
class Student
{
public:
int rollNo;
};
यहाँ rollNo को class के बाहर object के माध्यम से access किया जा सकता है।
2. private
private members को class के बाहर directly access नहीं किया जा सकता। इन्हें सामान्यतः class के member functions के माध्यम से access किया जाता है।
class Student
{
private:
int marks;
public:
void setMarks(int m)
{
marks = m;
}
void displayMarks()
{
cout << marks;
}
};
यहाँ marks private है और इसे setMarks() तथा displayMarks() member functions के माध्यम से access किया गया है।
3. protected
protected members class के अंदर और derived classes में access किए जा सकते हैं। इनके बारे में inheritance के context में आगे विस्तार से अध्ययन किया जाएगा।
class Student
{
protected:
int marks;
};
Default Access Specifier in a Class
C++ में यदि class के अंदर कोई access specifier नहीं दिया जाता है, तो members default रूप से private होते हैं।
class Student
{
int rollNo;
};
ऊपर rollNo default रूप से private है। इसलिए इसे class के बाहर directly access नहीं किया जा सकता।
Defining a Class with Data and Functions
एक class में multiple data members और member functions define किए जा सकते हैं।
#include <iostream>
using namespace std;
class Rectangle
{
public:
int length;
int breadth;
int area()
{
return length * breadth;
}
int perimeter()
{
return 2 * (length + breadth);
}
};
int main()
{
Rectangle r;
r.length = 10;
r.breadth = 5;
cout << "Area: " << r.area() << endl;
cout << "Perimeter: " << r.perimeter();
return 0;
}
Area: 50
Perimeter: 30
यहाँ Rectangle class में length और breadth data members हैं तथा area() और perimeter() member functions हैं।
Creating Objects from a Class
Class define करने के बाद उसके आधार पर objects बनाए जा सकते हैं। Object create करने का syntax सामान्य variable declaration के समान होता है।
ClassName objectName;
उदाहरण:
Student s1;
Student s2;
यहाँ s1 और s2 Student class के दो अलग-अलग objects हैं।
Accessing Class Members
Public data members और member functions को object के साथ dot (.) operator का उपयोग करके access किया जाता है।
objectName.memberName;
उदाहरण:
s1.rollNo = 101;
s1.display();
यहाँ dot operator के माध्यम से rollNo data member और display() member function को access किया गया है।
Multiple Objects of a Class
एक class से कितने भी आवश्यक objects बनाए जा सकते हैं। प्रत्येक object के पास अपने data members की अलग values हो सकती हैं।
#include <iostream>
using namespace std;
class Student
{
public:
int rollNo;
void display()
{
cout << "Roll No: " << rollNo << endl;
}
};
int main()
{
Student s1, s2;
s1.rollNo = 101;
s2.rollNo = 102;
s1.display();
s2.display();
return 0;
}
Roll No: 101
Roll No: 102
यहाँ s1 और s2 अलग-अलग objects हैं और दोनों के rollNo की values अलग हैं।
Class Definition Outside main()
सामान्यतः class को main() function के बाहर define किया जाता है। इससे class पूरे program में उपलब्ध रहती है और उसके multiple objects बनाए जा सकते हैं।
#include <iostream>
using namespace std;
class Car
{
public:
string brand;
void show()
{
cout << "Brand: " << brand;
}
};
int main()
{
Car c;
c.brand = "Toyota";
c.show();
return 0;
}
Brand: Toyota
Class as a User-Defined Data Type
C++ में class को एक user-defined data type माना जाता है। जैसे int और float built-in data types हैं, उसी प्रकार programmer अपनी आवश्यकता के अनुसार class define करके नया data type बना सकता है।
उदाहरण के लिए, Student class define करने के बाद Student एक user-defined type की तरह उपयोग किया जा सकता है:
Student s1;
Student s2;
Student s3;
यहाँ Student class के आधार पर तीन objects बनाए गए हैं।
Class and Object Relationship
| Class | Object |
|---|---|
| Class एक blueprint या template है। | Object class का instance है। |
| Class data और functions को define करती है। | Object उन members का उपयोग करता है। |
| Class user-defined data type हो सकती है। | Object उस type का variable माना जा सकता है। |
| एक class से multiple objects बनाए जा सकते हैं। | हर object का अपना state/data हो सकता है। |
Example: Student Class
निम्न program में Student class के अंदर student की basic information और उसे display करने के लिए member function define किया गया है।
#include <iostream>
using namespace std;
class Student
{
public:
int rollNo;
string name;
float marks;
void display()
{
cout << "Roll No: " << rollNo << endl;
cout << "Name: " << name << endl;
cout << "Marks: " << marks;
}
};
int main()
{
Student s;
s.rollNo = 12;
s.name = "Rahul";
s.marks = 91.5;
s.display();
return 0;
}
Roll No: 12
Name: Rahul
Marks: 91.5
Advantages of Defining a Class
- Related data और functions को एक single unit में organize किया जा सकता है।
- Real-world entities को program में represent करना आसान होता है।
- Data hiding और encapsulation को implement किया जा सकता है।
- एक class से multiple objects बनाए जा सकते हैं।
- Program को modular और manageable बनाया जा सकता है।
- Code reusability और maintainability को बेहतर बनाया जा सकता है।
Important Points
- Class को define करने के लिए class keyword का उपयोग किया जाता है।
- Class एक blueprint या template है।
- Class के अंदर data members और member functions define किए जा सकते हैं।
- Class के अंत में semicolon ; लगाना आवश्यक है।
- C++ में class का default access specifier private होता है।
- public members को class के बाहर access किया जा सकता है।
- private members को class के बाहर directly access नहीं किया जा सकता।
- protected members class और derived classes में access किए जा सकते हैं।
- Class एक user-defined data type है।
- एक class से multiple objects बनाए जा सकते हैं।
- Object के members को access करने के लिए dot (.) operator का उपयोग किया जाता है।
Board Focus
class → Class define करने का keyword
Class → Blueprint / Template
Data Members → Object का data/state store करते हैं
Member Functions → Data पर operations करते हैं
public → Class के बाहर accessible
private → Class के बाहर directly accessible नहीं
protected → Class और derived class में accessible
Default Access in class → private
Class End → Semicolon (;) आवश्यक
Object Member Access → Dot (.) operator
Board Important Questions
Very Short Answer Questions
Q1. Class क्या है?
Answer: Class एक blueprint या template है जिसका उपयोग objects बनाने के लिए किया जाता है।
Q2. Class को define करने के लिए कौन-सा keyword उपयोग किया जाता है?
Answer: class keyword.
Q3. C++ में class का default access specifier क्या है?
Answer: private.
Q4. Data Member क्या है?
Answer: Class के अंदर define किया गया variable जो object का data या state store करता है, data member कहलाता है।
Q5. Member Function क्या है?
Answer: Class के अंदर define किया गया function जो class के data पर operations कर सकता है, member function कहलाता है।
Q6. Object के class members को access करने के लिए कौन-सा operator उपयोग होता है?
Answer: Dot (.) operator.
Q7. Class definition के अंत में क्या लगाया जाता है?
Answer: Semicolon (;) लगाया जाता है।
Short Answer Questions
Q8. C++ में class को कैसे define किया जाता है?
Answer: C++ में class को class keyword का उपयोग करके define किया जाता है। Class के braces के अंदर data members और member functions define किए जाते हैं और class definition के अंत में semicolon लगाया जाता है।
class Student
{
public:
int rollNo;
void display()
{
cout << rollNo;
}
};
Q9. Data Members और Member Functions में अंतर बताइए।
| Data Members | Member Functions |
|---|---|
| ये variables होते हैं। | ये functions होते हैं। |
| Object का data या state store करते हैं। | Data पर operations perform करते हैं। |
| उदाहरण: rollNo, marks | उदाहरण: display(), calculate() |
Q10. Public और Private members में अंतर बताइए।
| Public | Private |
|---|---|
| Class के बाहर से access किए जा सकते हैं। | Class के बाहर directly access नहीं किए जा सकते। |
| Object के माध्यम से access किया जा सकता है। | सामान्यतः member functions के माध्यम से access किया जाता है। |
| public keyword द्वारा define किए जाते हैं। | private keyword द्वारा define किए जाते हैं। |
Q11. Class को user-defined data type क्यों कहा जाता है?
Answer: Programmer अपनी आवश्यकता के अनुसार class define करके data और related functions का एक नया structure बना सकता है। इसलिए C++ में class को user-defined data type कहा जाता है।
Q12. एक class से multiple objects कैसे बनाए जाते हैं?
Answer: Class define करने के बाद उसके नाम का उपयोग करके multiple objects declare किए जा सकते हैं।
Student s1;
Student s2;
Student s3;
यहाँ s1, s2 और s3 Student class के तीन अलग-अलग objects हैं।
Long Answer Questions
Q13. C++ में class की परिभाषा, syntax और components समझाइए।
Answer: Class C++ में एक user-defined data type और objects का blueprint है। Class को class keyword का उपयोग करके define किया जाता है। इसमें data members, member functions और access specifiers हो सकते हैं। इसका सामान्य syntax है:
class ClassName
{
public:
// Data members
// Member functions
};
Data members object का data store करते हैं, जबकि member functions data पर operations perform करते हैं। Access specifiers यह निर्धारित करते हैं कि class members को कहाँ से access किया जा सकता है।
Q14. निम्न C++ program की सहायता से class और object को समझाइए।
#include <iostream>
using namespace std;
class Rectangle
{
public:
int length;
int breadth;
int area()
{
return length * breadth;
}
};
int main()
{
Rectangle r;
r.length = 10;
r.breadth = 5;
cout << "Area: " << r.area();
return 0;
}
Area: 50
यहाँ Rectangle एक class है और r उसका object है। length और breadth data members हैं तथा area() एक member function है। Object r के माध्यम से data members को values दी गई हैं और area() function को call किया गया है।
Q15. C++ में access specifiers को समझाइए।
Answer: Access specifiers class के members की accessibility निर्धारित करते हैं। C++ में तीन मुख्य access specifiers हैं—public, private और protected। Public members को class के बाहर access किया जा सकता है। Private members को class के बाहर directly access नहीं किया जा सकता। Protected members class के अंदर और derived classes में access किए जा सकते हैं। Class में default access specifier private होता है।
Q16. Class और Object में अंतर बताइए।
| Class | Object |
|---|---|
| Class blueprint या template है। | Object class का instance है। |
| Class data और behavior define करती है। | Object defined data और behavior का वास्तविक उपयोग करता है। |
| Class से multiple objects बनाए जा सकते हैं। | हर object की data values अलग हो सकती हैं। |
Q17. एक Student class define करके student की roll number और marks display करने का C++ program लिखिए।
#include <iostream>
using namespace std;
class Student
{
public:
int rollNo;
float marks;
void display()
{
cout << "Roll No: " << rollNo << endl;
cout << "Marks: " << marks;
}
};
int main()
{
Student s;
s.rollNo = 25;
s.marks = 89.5;
s.display();
return 0;
}
Roll No: 25
Marks: 89.5
Quick Revision
- Class: Objects का blueprint या template
- Object: Class का instance
- Data Member: Object का data/state store करता है
- Member Function: Object के data पर operation करता है
- public: Class के बाहर accessible
- private: Class के बाहर directly accessible नहीं
- protected: Class और derived classes में accessible
- Default access in class: private
- Class definition: अंत में semicolon आवश्यक
- Member access: Dot (.) operator
Practice Questions
- Class क्या है?
- C++ में class को define करने के लिए कौन-सा keyword उपयोग किया जाता है?
- Class के basic components कौन-कौन से हैं?
- Data members और member functions क्या हैं?
- Class का default access specifier क्या होता है?
- Public, private और protected access specifiers को समझाइए।
- Class और Object में अंतर बताइए।
- Class को user-defined data type क्यों कहा जाता है?
- Class definition का सामान्य syntax लिखिए।
- Class के अंत में semicolon क्यों लगाया जाता है?
- Object के members को access करने के लिए किस operator का उपयोग किया जाता है?
- एक Student class define करके roll number और marks store करने का program लिखिए।
- एक Rectangle class define करके area और perimeter calculate करने का C++ program लिखिए।
- एक class से multiple objects बनाने का उदाहरण दीजिए।
- Access specifiers का उपयोग करके data members को अलग-अलग access levels देने वाला C++ program लिखिए।