I denne opplæringen vil vi lære om objekter og klasser og hvordan du bruker dem i C ++ ved hjelp av eksempler.
I tidligere veiledninger lærte vi om funksjoner og variabler. Noen ganger er det ønskelig å plassere relaterte funksjoner og data på ett sted slik at det er logisk og lettere å jobbe med.
Anta at vi må lagre lengden, bredden og høyden på et rektangulært rom og beregne arealet og volumet.
For å håndtere denne oppgaven kan vi lage tre variabler, si lengde, bredde og høyde sammen med funksjonene calculateArea()
og calculateVolume()
.
Imidlertid, i C ++, i stedet for å lage separate variabler og funksjoner, kan vi også pakke disse relaterte dataene og funksjonene på et enkelt sted (ved å lage objekter ). Dette programmeringsparadigmet er kjent som objektorientert programmering.
Men før vi kan lage objekter og bruke dem i C ++, må vi først lære om klasser .
C ++ klasse
En klasse er en blåkopi for objektet.
Vi kan tenke på en klasse som en skisse (prototype) av et hus. Den inneholder alle detaljer om gulv, dører, vinduer etc. Basert på disse beskrivelsene bygger vi huset. Huset er objektet.
Lag en klasse
En klasse er definert i C ++ ved hjelp av nøkkelord class
etterfulgt av navnet på klassen.
Klassens kropp er definert i de krøllete parentesene og avsluttet med et semikolon på slutten.
class className ( // some data // some functions );
For eksempel,
class Room ( public: double length; double breadth; double height; double calculateArea()( return length * breadth; ) double calculateVolume()( return length * breadth * height; ) );
Her definerte vi en klasse som heter Room
.
Variablene lengde, bredde og høyde oppgitt i klassen er kjent som data-medlemmer . Og funksjonene calculateArea()
og calculateVolume()
er kjent som medlemsfunksjoner i en klasse.
C ++ objekter
Når en klasse er definert, er bare spesifikasjonen for objektet definert. det er ikke tildelt noe minne eller lagringsplass.
For å bruke data- og tilgangsfunksjonene som er definert i klassen, må vi lage objekter.
Syntaks for å definere objekt i C ++
className objectVariableName;
Vi kan lage objekter i Room
klassen (definert i eksemplet ovenfor) som følger:
// sample function void sampleFunction() ( // create objects Room room1, room2; ) int main()( // create objects Room room3, room4; )
Her Room
opprettes to objekter rom1 og rom2 i klassen sampleFunction()
. På samme måte blir objektene rom3 og rom4 opprettet i main()
.
Som vi kan se, kan vi lage objekter fra en klasse i hvilken som helst funksjon av programmet. Vi kan også lage objekter fra en klasse i klassen selv, eller i andre klasser.
Vi kan også lage så mange objekter som vi vil fra en enkelt klasse.
C ++ tilgang til data medlemmer og medlemsfunksjoner
Vi kan få tilgang til datamedlemmer og medlemsfunksjoner i en klasse ved hjelp av en .
(dot) operatør. For eksempel,
room2.calculateArea();
Dette vil kalle calculateArea()
funksjonen inne i Room
klassen for objektrom2.
På samme måte kan du få tilgang til datamedlemmene som:
room1.length = 5.5;
I dette tilfellet initialiserer den lengdevariabelen til rom1 til 5.5
.
Eksempel 1: Objekt og klasse i C ++ programmering
// Program to illustrate the working of // objects and class in C++ Programming #include using namespace std; // create a class class Room ( public: double length; double breadth; double height; double calculateArea() ( return length * breadth; ) double calculateVolume() ( return length * breadth * height; ) ); int main() ( // create object of Room class Room room1; // assign values to data members room1.length = 42.5; room1.breadth = 30.8; room1.height = 19.2; // calculate and display the area and volume of the room cout << "Area of Room = " << room1.calculateArea() << endl; cout << "Volume of Room = " << room1.calculateVolume() << endl; return 0; )
Produksjon
Romareal = 1309 Romvolum = 25132.8
I dette programmet har vi brukt Room
klassen og dens objekterom1 til å beregne arealet og volumet til et rom.
I main()
tilordnet vi verdiene lengde, bredde og høyde med koden:
room1.length = 42.5; room1.breadth = 30.8; room1.height = 19.2;
Vi ringte deretter funksjonene calculateArea()
og for calculateVolume()
å utføre de nødvendige beregningene.
Legg merke til bruken av nøkkelordet public
i programmet. Dette betyr at medlemmene er offentlige og har tilgang til hvor som helst fra programmet.
I henhold til våre behov kan vi også opprette private medlemmer ved hjelp av private
nøkkelordet. De private medlemmene av en klasse er bare tilgjengelig fra klassen. For eksempel,
class Test ( private:
int a; void function1() ( ) public: int b; void function2() ( ) ) Here, a and function1() are private and are. Thus they cannot be accessed from outside the class.
På den annen side er b og function2()
tilgjengelig fra hvor som helst i programmet.
Hvis du vil lære mer om offentlige og private søkeord, kan du gå til C ++ Class Access Modifiers tutorial.
Eksempel 2: Bruke offentlig og privat i C ++ klasse
// Program to illustrate the working of // public and private in C++ Class #include using namespace std; class Room ( private: double length; double breadth; double height; public: // function to initialize private variables void getData(double len, double brth, double hgt) ( length = len; breadth = brth; height = hgt; ) double calculateArea() ( return length * breadth; ) double calculateVolume() ( return length * breadth * height; ) ); int main() ( // create object of Room class Room room1; // pass the values of private variables as arguments room1.getData(42.5, 30.8, 19.2); cout << "Area of Room = " << room1.calculateArea() << endl; cout << "Volume of Room = " << room1.calculateVolume() << endl; return 0; )
Produksjon
Romareal = 1309 Romvolum = 25132.8
Ovenstående eksempel er nesten identisk med det første eksemplet, bortsett fra at klassevariablene nå er private.
Siden variablene nå er private, kan vi ikke få tilgang til dem direkte fra main()
. Derfor vil bruk av følgende kode være ugyldig:
// invalid code obj.length = 42.5; obj.breadth = 30.8; obj.height = 19.2;
I stedet bruker vi offentlig funksjon getData()
for å initialisere private variabler via funksjonsparametere double len
, double brth
og double hgt
.
For å lære mer om objekter og klasser, besøk disse emnene:
- C ++ konstruksjoner
- Hvordan sende og returnere et objekt fra en funksjon?