Clase și obiecte C ++

În acest tutorial, vom învăța despre obiecte și clase și cum să le folosim în C ++ cu ajutorul exemplelor.

În tutoriale anterioare, am aflat despre funcții și variabile. Uneori este de dorit să puneți funcțiile și datele aferente într-un singur loc, astfel încât să fie logic și mai ușor de lucrat.

Să presupunem că trebuie să stocăm lungimea, lățimea și înălțimea unei camere dreptunghiulare și să calculăm aria și volumul acesteia.

Pentru a face față acestei sarcini, putem crea trei variabile, să zicem, lungimea, lățimea și înălțimea, împreună cu funcțiile calculateArea()și calculateVolume().

Cu toate acestea, în C ++, mai degrabă decât să creăm variabile și funcții separate, putem înfășura aceste date și funcții legate într-un singur loc (prin crearea de obiecte ). Această paradigmă de programare este cunoscută sub numele de programare orientată pe obiecte.
Dar înainte de a putea crea obiecte și a le folosi în C ++, trebuie mai întâi să aflăm despre cursuri .

Clasa C ++

O clasă este un plan pentru obiect.
Ne putem gândi la o clasă ca la o schiță (prototip) a unei case. Conține toate detaliile despre pardoseli, uși, ferestre etc. Pe baza acestor descrieri construim casa. Casa este obiectul.

Creați o clasă

O clasă este definită în C ++ utilizând cuvânt cheie classurmat de numele clasei.

Corpul clasei este definit în interiorul parantezelor crețate și terminat cu un punct și virgulă la sfârșit.

 class className ( // some data // some functions );

De exemplu,

 class Room ( public: double length; double breadth; double height; double calculateArea()( return length * breadth; ) double calculateVolume()( return length * breadth * height; ) );

Aici am definit o clasă numită Room.

Variabilele lungime, lățime și înălțime declarate în interiorul clasei sunt cunoscute ca membri ai datelor . Și, funcțiile calculateArea()și calculateVolume()sunt cunoscute ca funcții membre ale unei clase.

Obiecte C ++

Când este definită o clasă, este definită doar specificația pentru obiect; nu este alocată memorie sau stocare.

Pentru a utiliza datele și funcțiile de acces definite în clasă, trebuie să creăm obiecte.

Sintaxa pentru a defini obiectul în C ++

 className objectVariableName;

Putem crea obiecte de Roomclasă (definite în exemplul de mai sus) după cum urmează:

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

Aici, Roomsunt create două obiecte room1 și room2 ale clasei sampleFunction(). În mod similar, obiectele room3 și room4 sunt create în main().

După cum putem vedea, putem crea obiecte ale unei clase în orice funcție a programului. De asemenea, putem crea obiecte ale unei clase în cadrul clasei în sine sau în alte clase.

De asemenea, putem crea câte obiecte dorim de la o singură clasă.

C ++ Accesează datele membrilor și funcțiile membrilor

Putem accesa membrii de date și funcțiile de membru ale unei clase utilizând un .operator (punct). De exemplu,

 room2.calculateArea();

Aceasta va apela calculateArea()funcția din Roomclasă pentru obiectul room2.

În mod similar, membrii datelor pot fi accesați ca:

 room1.length = 5.5;

În acest caz, inițializează variabila lungime a camerei1 până la 5.5.

Exemplul 1: Obiect și clasă în programarea C ++

 // 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; )

Ieșire

 Area of Room = 1309 Volume of Room = 25132.8

In this program, we have used the Room class and its object room1 to calculate the area and volume of a room.

In main(), we assigned the values of length, breadth, and height with the code:

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

We then called the functions calculateArea() and calculateVolume() to perform the necessary calculations.

Note the use of the keyword public in the program. This means the members are public and can be accessed anywhere from the program.

As per our needs, we can also create private members using the private keyword. The private members of a class can only be accessed from within the class. For example,

 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.

On the other hand, b and function2() are accessible from everywhere in the program.

Pentru a afla mai multe despre cuvintele cheie publice și private, vă rugăm să vizitați tutorialul C ++ Class Access Modifiers.

Exemplul 2: Utilizarea publicului și a celui privat în clasa C ++

 // 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; )

Ieșire

 Suprafața camerei = 1309 Volumul camerei = 25132,8

Exemplul de mai sus este aproape identic cu primul exemplu, cu excepția faptului că variabilele de clasă sunt acum private.

Deoarece variabilele sunt acum private, nu le putem accesa direct din main(). Prin urmare, utilizarea următorului cod ar fi nevalidă:

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

În schimb, vom folosi funcția publică getData()pentru a inițializa variabilele private , prin intermediul parametrilor funcției double len, double brthși double hgt.

Pentru a afla mai multe despre obiecte și cursuri, vizitați aceste subiecte:

  • C ++ Constructori
  • Cum să treci și să returnezi un obiect dintr-o funcție?

Articole interesante...