class in C++
class एक user defined type है एक तरह से यह structure का एक updated version है, जैसे C ++, C का updated version है। इसलिए यदि आपने structure के concept को समझा है, तो आप इसे आसानी से समझ सकते हैं।
जैसा कि OOPs में पहले ही उल्लेख किया गया है। class, data members और function members का एक collection है जो logically एक दूसरे से related होते हैं। इन member को access -specifier या mode में declare किया जाता है।
किसी class के members को access specifier का उपयोग करके उनके class -object से access किया जाता है ताकि एक class को implement किया जा सके।
इस प्रकार एक class में access specifier को declare करके, एक class का syntax इस प्रकार होगा –
SYNTAX
class class-name
{
private:
data member;
function member;
public:
data member;
function;
};
इसे आप oops in C++ में दिए गए class से compare करें।
यहां, data member, data -types दर्शाते हैं , जबकि function member function type के members को। class -name एक identifier है यानी कोई भी उपयुक्त नाम (reserve keyword को छोड़कर)।
class के साथ programming शुरू करने से पहले, हम इन access specifier पर चर्चा करेंगे।
Type of specifier in C++
- Private specifier
- Public specifier
- Protected specifier
Private specifier
जब किसी class के member को private mode में declare किया जाता है, तो उसे केवल उसके public members और friend function (non-member)द्वारा ही access किया जा सकता है। मतलब private members को उसी class के public members ही access कर सकते हैं।
✍ private members को class के बाहर से access नहीं किया जा सकता है और उन्हें inherit में भी नहीं किया जा सकता है।
हालाँकि, किसी class के सभी member default रूप से private ही होते हैं, इसलिए यदि class में कोई mode declared नहीं है, तो class के सभी members अपने आप private हो जाएंगे यानी private
कीवर्ड यहां optional है। जैसे कि-
class class-name
{
data-member;
function-member;
}
such as,
Public specifier
इस mode में declared data members और function members को class के बाहर उसके object से access किया जा सकता है।
✍: किसी class के member उस class के private member को access कर सकते हैं और साथ ही इन्हे inherit भी किया जा सकता है।
एक class के सभी members पहले से private होते हैं इसलिए उन्हें public बनाने के लिए public
keyword का use होगा –
class class-name
{
data-memeber;
function-member;
public:
data-member;
function-member;
}
दो access specifier के अलावा, class में एक 3 specifier पाया जाता है, इसका प्रयोग inheritance में किया जाता है जहाँ हम किसी class की property को अन्य class में inherit करते हैं।
इस access specifier के बारे में inheritance में बताया गया है।
Example of a default class in C++
नीचे दिए गए program में , roll_no और name , दो variable by default private हैं जबकि function get_record() और put_record() public में declared हैं अब, इन private members को इसी class public member से access किया जाता है। जैसे कि
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
class student
{
// private by default
int roll_no;
char name[20];
public: // public member
void get_record(void);
void put_record(void);
}; class closed
//input record from the user
void student::get_record()
{
cout<<"Enter roll no: ";
cin>>roll_no;
cout<<"Enter Name : ";
gets(name);
}
//display record
void student::put_record()
{
cout<<"\nRoll no: "<<roll_no;
cout<<"\nName : "<<name;
}
// main program start
void main()
{
clrscr();
getch();
}
इस program का कोई भी OUTPUT प्राप्त नहीं होगा क्योंकि एक class को बिना इसके object के implement नहीं किया जा सकता है।
declaring a class-object in C++
जिस प्रकार structure में, structure members को structure -variable से access किया जाता है ठीक उसी प्रकार class के member को उस class के class -variable /object से access किया जाता है। याद रखें कि private member किसी object द्वारा access नहीं किये जाते। केवल public member को ही object से access किया जाता है।
SYNTAX
class-name object;
जिसमे object एक identifier होता है (reserve keyword को छोड़कर) एक class के एक से अधिक object (different नाम से )हो सकते हैं-
class-name object1, object2,.....n;
यहाँ object declaration का एक और तरीका दिया गया है-
class class-name
{
data-member;
public:
data-member;
member-function;
} object1, object2,.....n;
Accessing class member using their object
जैसा कि हम जानते हैं कि class के केवल public members ही एक्सेस किये जा सकते हैं। माना किसी class के दो object x और y declared किये गए हैं तो
object declaration के बाद, पहले object x से -,
x.get_record();
x.put_record();
फिर फिर दूसरे object y से-
y.get_record()
y.put_record();
यहां दो object x और y दो student को indicates करते हैं। जितनी अधिक object होंगे। उतने ही अधिक students record को store किया जायेगा।
इसका program नीचे दिया गया है –
Example of class in C++
#include<iostream.h>
#include<conio.h>
class student
{
// private by default
int roll_no;
char name[20];
public: // public member
void get_record(void);
void put_record(void);
}; class closed
//input record from the user
void student::get_record()
{
cout<<"Enter roll no: ";
cin>>roll_no; cout<<"Enter Name : ";
gets(name);
}
//display record
void student::put_record()
{
cout<<"\nRoll no: "<<roll_no;
cout<<"\nName : "<<name;
}
// main program start
void main()
{
clrscr();
student x, y; // two variable declared
x.get_record();
y.get_record();
x.put_record();
y.put_record();
getch();
}
OUTPUT
Enter roll no: 11
Enter Name : Rahul sherma
Enter roll no: 12
Enter Name : Anand sherma
Roll no: 11
Name : Rahul sherma
Roll no: 12
Name : Anand sherma
इस प्रकार एक class implement होता है।
define of class members in C++
किसी class में class के private members को class के अंदर ही declare किया जाता है, जबकि public को दो तरीकों से declared किया जा सकता है –
- inside the class
- outside the class
definition inside the class
class के अंदर function member को declare किये बिना function definition दी जाती है । इसे inline definition भी कहते हैं।
इसका syntax नीचे दिया गया है –
SYNTAX
class class_name
{
private:
..........
public:
return_type function_name()
{
body of function;
}
...........
};
definition outside The class
इसमें function declaration class के अंदर जबकि definition class के बाहर scope resolution operator द्वारा defined किया जाता है। इसे C ++ में outline definition भी कहा जाता है।
SYNTAX
class class-name
{
Private;
..............
public:
return-type function-name();
..........;
};
class_name :: return_type function_name()
{
body of function;
}
इन दोनों के उदाहरण ऊपर के program में दिया गया है –
Difference between class and structure in C++
-
- structure के सभी structure-variable से access किया जाता है
- जबकि class के public member को ही class object से access किया जा सकता है।
- structure के सभी members by default public होते हैं जबकि class के सभी members by default private होते हैं।
- class एक OOPs का features है, जबकि structure POPs प्रकार का feature है।
- class में data-abstraction, data-encapsulation और inheritance जैसे features हैं जबकि structure में यह संभव नहीं है।
-
similarities between class and structure in C++
- structure की तरह, class – name एक identifier होता है। जिसमे member data type और function हो सकते हैं।
- दोनों में जब तक इनके variable या object को declare नहीं किया जाता है तब तक दोनों memory में space reserve नहीं करते हैं।
- जिस प्रकार एक structure के member को एक structure-variable से access किया जाता है, class-members (केवल public member ) को object से access किया जाता है।
- class और structure दोनों के members को एक parentheses bracket में declare किये जाते हैं और प्रत्येक member semicolon से terminate होता है।
array of object in C++ hindi
array of structure in C++ hindi
previous – OOPs concepts in C++
next- Friend function in C++