C ++ klasser og objekter

I denne vejledning lærer vi om objekter og klasser, og hvordan man bruger dem i C ++ ved hjælp af eksempler.

I tidligere tutorials lærte vi om funktioner og variabler. Nogle gange er det ønskeligt at placere relaterede funktioner og data ét sted, så det er logisk og lettere at arbejde med.

Antag, at vi skal gemme længden, bredden og højden af ​​et rektangulært rum og beregne dets areal og volumen.

For at håndtere denne opgave kan vi oprette tre variabler, siger længde, bredde og højde sammen med funktionerne calculateArea()og calculateVolume().

I C ++ kan vi dog snarere end at oprette separate variabler og funktioner også pakke disse relaterede data og funktioner på et enkelt sted (ved at oprette objekter ). Dette programmeringsparadigme er kendt som objektorienteret programmering.
Men inden vi kan oprette objekter og bruge dem i C ++, skal vi først lære om klasser .

C ++ klasse

En klasse er en plan for objektet.
Vi kan tænke på en klasse som en skitse (prototype) af et hus. Den indeholder alle detaljer om gulve, døre, vinduer osv. Baseret på disse beskrivelser bygger vi huset. Huset er objektet.

Opret en klasse

En klasse er defineret i C ++ ved hjælp af nøgleord classefterfulgt af navnet på klassen.

Klassens krop er defineret inden i de krøllede parenteser og afsluttes med et semikolon i slutningen.

 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 definerede vi en klasse med navnet Room.

Variablerne længde, bredde og højde, der er angivet inden for klassen, er kendt som data-medlemmer . Og funktionerne calculateArea()og calculateVolume()er kendt som medlemsfunktioner i en klasse.

C ++ objekter

Når en klasse er defineret, defineres kun specifikationen for objektet; ingen hukommelse eller lager er allokeret.

For at bruge de data- og adgangsfunktioner, der er defineret i klassen, skal vi oprette objekter.

Syntaks til at definere objekt i C ++

 className objectVariableName;

Vi kan oprette objekter af Roomklasse (defineret i ovenstående eksempel) som følger:

 // sample function void sampleFunction() ( // create objects Room room1, room2; ) int main()( // create objects Room room3, room4; )

Her Roomoprettes to objekter rum1 og rum2 i klassen sampleFunction(). Tilsvarende oprettes objekterne room3 og room4 i main().

Som vi kan se, kan vi oprette objekter fra en klasse i enhver funktion af programmet. Vi kan også oprette objekter fra en klasse inden for selve klassen eller i andre klasser.

Vi kan også oprette så mange objekter, som vi vil, fra en enkelt klasse.

C ++ Adgangsdeltagere og medlemsfunktioner

Vi kan få adgang til datamedlemmerne og medlemsfunktionerne i en klasse ved hjælp af en .(dot) operator. For eksempel,

 room2.calculateArea();

Dette kalder calculateArea()funktionen inde i Roomklassen til objektrum2.

Tilsvarende kan der fås adgang til datamedlemmerne som:

 room1.length = 5.5;

I dette tilfælde initialiserer den længdevariablen for rum1 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; )

Produktion

 Rumareal = 1309 Rumvolumen = 25132.8

I dette program har vi brugt Roomklassen og dens objektrum1 til at beregne et rums areal og volumen.

I main()tildelte vi værdierne længde, bredde og højde med koden:

 room1.length = 42.5; room1.breadth = 30.8; room1.height = 19.2;

Vi kaldte derefter funktionerne calculateArea()og for calculateVolume()at udføre de nødvendige beregninger.

Bemærk brugen af ​​nøgleordet publici programmet. Dette betyder, at medlemmerne er offentlige og har adgang til hvor som helst fra programmet.

I henhold til vores behov kan vi også oprette private medlemmer ved hjælp af privatenøgleordet. De private medlemmer af en klasse er kun tilgængelige 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 anden side er b og function2()tilgængelige overalt i programmet.

For at lære mere om offentlige og private nøgleord, besøg vores C ++ Class Access Modifiers tutorial.

Eksempel 2: Brug 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; )

Produktion

 Rumareal = 1309 Rumvolumen = 25132.8

Ovenstående eksempel er næsten identisk med det første eksempel, bortset fra at klassevariablerne nu er private.

Da variablerne nu er private, kan vi ikke få adgang til dem direkte fra main(). Derfor er brugen af ​​følgende kode ugyldig:

 // invalid code obj.length = 42.5; obj.breadth = 30.8; obj.height = 19.2;

I stedet skal vi bruge den offentlige funktion getData()at initialisere de private variabler via funktionsparametre double len, double brthog double hgt.

For at lære mere om objekter og klasser, besøg disse emner:

  • C ++ konstruktører
  • Hvordan videregives og returneres et objekt fra en funktion?

Interessante artikler...