V tej vadnici bomo s pomočjo primerov spoznali predmete in razrede ter kako jih uporabljati v jeziku C ++.
V prejšnjih vajah smo spoznali funkcije in spremenljivke. Včasih je zaželeno, da sorodne funkcije in podatke postavite na eno mesto, da je logično in lažje delati z njimi.
Recimo, da moramo shraniti dolžino, širino in višino pravokotne sobe ter izračunati njeno površino in prostornino.
Za reševanje te naloge lahko skupaj s funkcijami calculateArea()
in ustvarimo tri spremenljivke, recimo dolžino, širino in višino calculateVolume()
.
Vendar pa lahko v C ++ namesto ustvarjanja ločenih spremenljivk in funkcij tudi te povezane podatke in funkcije zavijemo na eno mesto (z ustvarjanjem predmetov ). Ta programska paradigma je znana kot objektno usmerjeno programiranje.
Preden pa lahko ustvarimo predmete in jih uporabimo v jeziku C ++, se moramo najprej naučiti razredov .
Razred C ++
Razred je načrt predmeta.
Razred si lahko predstavljamo kot skico (prototip) hiše. Vsebuje vse podrobnosti o tleh, vratih, oknih itd. Na podlagi teh opisov gradimo hišo. Hiša je objekt.
Ustvari razred
Razred je definiran v jeziku C ++ z uporabo ključne besede, ki class
ji sledi ime razreda.
Telo razreda je določeno znotraj zavitih oklepajev in na koncu zaključeno s podpičjem.
class className ( // some data // some functions );
Na primer
class Room ( public: double length; double breadth; double height; double calculateArea()( return length * breadth; ) double calculateVolume()( return length * breadth * height; ) );
Tu smo definirali razred z imenom Room
.
Spremenljivke dolžina, širina in višina, navedene v razredu, so znane kot podatki . Funkcije calculateArea()
in calculateVolume()
so znane kot članske funkcije razreda.
Predmeti C ++
Ko je definiran razred, je definirana samo specifikacija predmeta; ni dodeljenega pomnilnika ali pomnilnika.
Za uporabo podatkov in funkcij dostopa, opredeljenih v razredu, moramo ustvariti predmete.
Sintaksa za definiranje predmeta v jeziku C ++
className objectVariableName;
Predmete Room
razreda (definirane v zgornjem primeru) lahko ustvarimo na naslednji način:
// sample function void sampleFunction() ( // create objects Room room1, room2; ) int main()( // create objects Room room3, room4; )
Tu Room
sta ustvarjena dva predmeta room1 in room2 razreda sampleFunction()
. Podobno sta v sobi ustvarjeni predmeti room3 in room4 main()
.
Kot lahko vidimo, lahko v kateri koli funkciji programa ustvarimo predmete razreda. Predmete razreda lahko ustvarimo tudi znotraj razreda ali v drugih razredih.
Prav tako lahko iz enega razreda ustvarimo toliko predmetov, kolikor želimo.
Člani C ++ in podatki o dostopu do podatkov
Do podatkovnih članov in funkcij članov razreda lahko dostopamo z .
operatorjem (pika). Na primer
room2.calculateArea();
To bo poklicalo calculateArea()
funkcijo znotraj Room
razreda za objekt room2.
Podobno je do podatkovnih članov mogoče dostopati kot:
room1.length = 5.5;
V tem primeru inicializira spremenljivko dolžine sobe1 na 5.5
.
Primer 1: Objekt in razred v programiranju na 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; )
Izhod
Površina sobe = 1309 Prostornina sobe = 25132,8
V tem programu smo Room
za izračun površine in prostornine sobe uporabili razred in njegov objekt room1.
V letu main()
smo s kodo dodelili vrednosti dolžine, širine in višine:
room1.length = 42.5; room1.breadth = 30.8; room1.height = 19.2;
Nato smo poklicali funkcije calculateArea()
in calculateVolume()
izvedli potrebne izračune.
Upoštevajte uporabo ključne besede public
v programu. To pomeni, da so člani javni in do njih lahko dostopate kjer koli iz programa.
Glede na naše potrebe lahko z uporabo private
ključne besede ustvarimo tudi zasebne člane . Do zasebnih članov predavanja je mogoče dostopati samo znotraj predavanja. Na primer
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.
Po drugi strani pa so b in function2()
dostopni od vsepovsod v programu.
Če želite izvedeti več o javnih in zasebnih ključnih besedah, obiščite našo vadnico za spreminjanje dostopa do razreda C ++.
Primer 2: Uporaba javnega in zasebnega v razredu 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; )
Izhod
Površina sobe = 1309 Prostornina sobe = 25132,8
Zgornji primer je skoraj enak prvemu, le da so spremenljivke razreda zdaj zasebne.
Ker so spremenljivke zdaj zasebne, do njih ne moremo dostopati neposredno main()
. Zato bi bila uporaba naslednje kode neveljavna:
// invalid code obj.length = 42.5; obj.breadth = 30.8; obj.height = 19.2;
Namesto tega smo uporabili javno funkcijo getData()
za inicializacijo zasebnih spremenljivke preko parametrov funkcije double len
, double brth
in double hgt
.
Če želite izvedeti več o predmetih in razredih, obiščite te teme:
- Konstruktorji C ++
- Kako prenesti in vrniti predmet iz funkcije?