Selles õpetuses õpime näidete abil objektidest ja klassidest ning nende kasutamist C ++ -s.
Eelmistes õpetustes õppisime tundma funktsioone ja muutujaid. Mõnikord on soovitav panna seotud funktsioonid ja andmed ühte kohta, nii et see oleks loogiline ja hõlpsam töötada.
Oletame, et peame salvestama ristkülikukujulise ruumi pikkuse, laiuse ja kõrguse ning arvutama selle pindala ja mahu.
Selle ülesande täitmiseks saame luua kolm muutujat, näiteks pikkus, laius ja kõrgus koos funktsioonide calculateArea()
ja calculateVolume()
.
Kuid C ++ keeles saame selle asemel, et luua eraldi muutujaid ja funktsioone, need seotud andmed ja funktsioonid ühte kohta ( objektide loomisega ). Seda programmeerimisparadigmat tuntakse kui objektorienteeritud programmeerimist.
Kuid enne kui saame objekte luua ja neid C ++ -s kasutada, peame kõigepealt õppima tundide kohta .
C ++ klass
Klass on objekti kavand.
Klassist võib mõelda kui maja eskiisist (prototüübist). See sisaldab kõiki üksikasju põrandate, uste, akende jne kohta. Nende kirjelduste põhjal ehitame maja. Maja on objekt.
Looge klass
Klass on määratletud kategoorias C ++, kasutades märksõna, class
millele järgneb klassi nimi.
Klassi keha on määratletud lokkis sulgudes ja selle lõpus on semikoolon.
class className ( // some data // some functions );
Näiteks,
class Room ( public: double length; double breadth; double height; double calculateArea()( return length * breadth; ) double calculateVolume()( return length * breadth * height; ) );
Siin määratlesime klassi nimega Room
.
Klassi sees deklareeritud muutujate pikkust, laiust ja kõrgust nimetatakse andmeliikmeteks . Ja klassi funktsioonid calculateArea()
ja need calculateVolume()
on tuntud kui liikme funktsioonid .
C ++ objektid
Kui klass on määratletud, on määratletud ainult objekti spetsifikatsioon; mälu ega salvestusruumi pole eraldatud.
Klassis määratletud andmete ja juurdepääsu funktsioonide kasutamiseks peame looma objektid.
Süntaks objekti määratlemiseks C ++ keeles
className objectVariableName;
Saame luua Room
klassi objekte (määratletud ülaltoodud näites) järgmiselt:
// sample function void sampleFunction() ( // create objects Room room1, room2; ) int main()( // create objects Room room3, room4; )
Siin Room
luuakse klassis kaks objekti tuba1 ja tuba2 sampleFunction()
. Samamoodi luuakse objektid room3 ja room4 main()
.
Nagu näeme, saame klassi objekte luua mis tahes programmi funktsioonides. Saame luua klassi objekte ka klassi sees või teistes klassides.
Samuti saame ühest klassist luua nii palju objekte kui soovime.
C ++ juurdepääsuandmete liikmed ja liikme funktsioonid
Saame juurdepääsu klassi andmeliikmetele ja liikme funktsioonidele, kasutades .
(punkt) operaatorit. Näiteks,
room2.calculateArea();
See kutsub objektiruumi 2 calculateArea()
funktsiooni Room
klassi sees .
Andmeliikmetele pääseb ligi ka järgmiselt:
room1.length = 5.5;
Sel juhul lähtestab see ruumi 1 pikkuse muutuja 5.5
.
Näide 1: Objekt ja klass C ++ programmeerimises
// 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; )
Väljund
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.
Avalike ja privaatsete märksõnade kohta lisateabe saamiseks külastage meie C ++ klassi juurdepääsu modifikaatorite õpetust.
Näide 2: avaliku ja erasektori kasutamine C ++ klassis
// 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; )
Väljund
Ruumi pind = 1309 Ruumi maht = 25132,8
Ülaltoodud näide on peaaegu identne esimese näitega, välja arvatud see, et klassi muutujad on nüüd privaatsed.
Kuna muutujad on nüüd privaatsed, ei pääse me neile otse juurde main()
. Seega oleks järgmise koodi kasutamine vale:
// invalid code obj.length = 42.5; obj.breadth = 30.8; obj.height = 19.2;
Selle asemel, me kasutame avalikke ülesandeid getData()
initsialiseerida era muutujate kaudu funktsiooni parameetrid double len
, double brth
ja double hgt
.
Objektide ja klasside kohta lisateabe saamiseks külastage neid teemasid:
- C ++ konstruktorid
- Kuidas objekti funktsioonist edasi anda ja tagasi anda?