C ++ klases un objekti

Šajā apmācībā mēs ar piemēriem uzzināsim par objektiem un klasēm un kā tos izmantot C ++.

Iepriekšējās apmācībās mēs uzzinājām par funkcijām un mainīgajiem. Dažreiz ir vēlams saistītās funkcijas un datus ievietot vienā vietā, lai būtu loģiski un vieglāk strādāt.

Pieņemsim, ka mums jāuzglabā taisnstūra telpas garums, platums un augstums un jāaprēķina tās platība un tilpums.

Lai veiktu šo uzdevumu, mēs varam izveidot trīs mainīgos, piemēram, garumu, platumu un augstumu kopā ar funkcijām calculateArea()un calculateVolume().

Tomēr C ++, tā vietā, lai izveidotu atsevišķus mainīgos un funkcijas, mēs varam arī saistīt šos saistītos datus un funkcijas vienā vietā (izveidojot objektus ). Šī programmēšanas paradigma ir pazīstama kā objektorientēta programmēšana.
Bet pirms mēs varam izveidot objektus un izmantot tos C ++, vispirms mums jāapgūst klases .

C ++ klase

Klase ir objekta projekts.
Mēs varam uzskatīt klasi par mājas skici (prototipu). Tajā ir visa informācija par grīdām, durvīm, logiem utt. Pamatojoties uz šiem aprakstiem, mēs būvējam māju. Māja ir objekts.

Izveidojiet klasi

Klase ir definēta C ++, izmantojot atslēgvārdu, classkam seko klases nosaukums.

Klases korpuss ir definēts cirtaino iekavu iekšpusē, un tā beigās ir semikols.

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

Piemēram,

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

Šeit mēs definējām klasi ar nosaukumu Room.

Klasē deklarētie mainīgie garums, platums un augstums ir pazīstami kā datu dalībnieki . Un funkcijas, calculateArea()un tās calculateVolume()ir pazīstamas kā klases dalībnieka funkcijas .

C ++ objekti

Kad ir definēta klase, tiek definēta tikai objekta specifikācija; nav piešķirta atmiņa vai krātuve.

Lai izmantotu klasē definētās datu un piekļuves funkcijas, mums ir jāizveido objekti.

Sintakse objekta definēšanai C ++

 className objectVariableName;

RoomKlases objektus (kas definēti iepriekšējā piemērā) mēs varam izveidot šādi:

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

Šeit Roomir izveidoti divi klases 1. un 2. istabas objekti sampleFunction(). Līdzīgi tiek izveidoti objekti room3 un room4 main().

Kā redzam, mēs varam izveidot klases objektus jebkurā programmas funkcijā. Mēs varam arī izveidot klases objektus pašā klasē vai citās klasēs.

Turklāt no vienas klases mēs varam izveidot tik daudz objektu, cik vēlamies.

C ++ piekļuves datu dalībnieki un dalībnieku funkcijas

Mēs varam piekļūt klases dalībniekiem un dalībnieku funkcijām, izmantojot .(punktu) operatoru. Piemēram,

 room2.calculateArea();

Tas objekta room2 izsauks calculateArea()funkciju Roomklases iekšienē .

Tāpat arī datu dalībniekiem var piekļūt kā:

 room1.length = 5.5;

Šajā gadījumā tas inicializē telpas 1 garuma mainīgo līdz 5.5.

1. piemērs: Objekts un klase C ++ programmēšanā

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

Rezultāts

 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.

Lai uzzinātu vairāk par publiskajiem un privātajiem atslēgvārdiem, lūdzu, apmeklējiet mūsu C ++ klases piekļuves modifikatoru apmācību.

2. piemērs: publiskā un privātā izmantošana C ++ klasē

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

Rezultāts

 Istabas platība = 1309 Istabas tilpums = 25132.8

Iepriekš minētais piemērs ir gandrīz identisks pirmajam piemēram, izņemot to, ka klases mainīgie tagad ir privāti.

Tā kā mainīgie tagad ir privāti, mēs nevaram tiem piekļūt tieši no main(). Tādējādi šāda koda izmantošana nebūtu derīga:

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

Tā vietā, mēs izmantojam sabiedrisko funkciju getData()inicializēt privātos mainīgos izmantojot funkciju parametrus double len, double brthun double hgt.

Lai uzzinātu vairāk par objektiem un nodarbībām, apmeklējiet šīs tēmas:

  • C ++ konstruktori
  • Kā nodot un atdot objektu no funkcijas?

Interesanti raksti...