Tässä opetusohjelmassa opitaan esineistä ja luokista sekä niiden käytöstä C ++ -sovelluksessa esimerkkien avulla.
Aikaisemmissa opetusohjelmissa opimme funktioista ja muuttujista. Joskus on toivottavaa sijoittaa siihen liittyvät toiminnot ja tiedot yhteen paikkaan, jotta on loogista ja helpompaa työskennellä.
Oletetaan, että meidän on tallennettava suorakaiteen muotoisen huoneen pituus, leveys ja korkeus ja laskettava sen pinta-ala ja tilavuus.
Tämän tehtävän hoitamiseksi voimme luoda kolme muuttujaa, kuten pituus, leveys ja korkeus sekä toiminnot calculateArea()
ja calculateVolume()
.
Kuitenkin C ++: ssa erillisten muuttujien ja funktioiden luomisen sijasta voimme myös kääri nämä liittyvät tiedot ja toiminnot yhteen paikkaan (luomalla objekteja ). Tämä ohjelmointiparadigma tunnetaan olio-ohjelmointina.
Mutta ennen kuin voimme luoda esineitä ja käyttää niitä C ++: ssa, meidän on ensin opittava luokista .
C ++ -luokka
Luokka on objektin piirustus.
Voimme ajatella luokkaa luonnoksena (prototyyppi) talosta. Se sisältää kaikki yksityiskohdat kerroksista, ovista, ikkunoista jne. Näiden kuvausten perusteella rakennamme talon. Talo on esine.
Luo luokka
Luokka määritellään C ++: ssa käyttämällä avainsanaa class
ja luokan nimeä.
Luokan runko on määritelty kiharoiden sulkujen sisällä ja sen lopussa on puolipiste.
class className ( // some data // some functions );
Esimerkiksi,
class Room ( public: double length; double breadth; double height; double calculateArea()( return length * breadth; ) double calculateVolume()( return length * breadth * height; ) );
Tässä määriteltiin luokka nimeltä Room
.
Luokan sisällä ilmoitetut muuttujien pituus, leveys ja korkeus tunnetaan tietojäseninä . Ja toiminnot calculateArea()
ja calculateVolume()
tunnetaan jäsenfunktioiden luokan.
C ++ -objektit
Kun luokka on määritelty, määritetään vain objektin määrittely; muistia tai tallennustilaa ei ole varattu.
Jotta voisimme käyttää luokassa määriteltyjä data- ja käyttötoimintoja, meidän on luotava objekteja.
Syntaksi objektin määrittelemiseksi C ++: ssa
className objectVariableName;
Voimme luoda Room
luokan esineitä (määritelty yllä olevassa esimerkissä) seuraavasti:
// sample function void sampleFunction() ( // create objects Room room1, room2; ) int main()( // create objects Room room3, room4; )
Tässä Room
luodaan luokan kaksi objektia huone1 ja huone2 sampleFunction()
. Vastaavasti objektit huone 3 ja huone 4 luodaan main()
.
Kuten näemme, voimme luoda luokan esineitä mihin tahansa ohjelman toimintoon. Voimme myös luoda luokan esineitä luokassa itse tai muissa luokissa.
Lisäksi voimme luoda niin monta kohdetta kuin haluamme yhdestä luokasta.
C ++ Access Data -jäsenet ja jäsenfunktiot
Voimme käyttää luokan datajäseniä ja jäsenfunktioita .
(piste) -operaattorin avulla. Esimerkiksi,
room2.calculateArea();
Tämä soittaa calculateArea()
sisällä olevalla funktiolla Room
luokan objekti room2.
Vastaavasti tietojäseniä voidaan käyttää seuraavasti:
room1.length = 5.5;
Tässä tapauksessa se alustaa huoneen 1 pituuden muuttujan 5.5
.
Esimerkki 1: Objekti ja luokka C ++ -ohjelmoinnissa
// 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; )
Tuotos
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.
Saat lisätietoja julkisista ja yksityisistä avainsanoista käymällä C ++ -luokan käyttömuokkaajien opetusohjelmassa.
Esimerkki 2: Julkisen ja yksityisen käyttö C ++ -luokassa
// 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; )
Tuotos
Huoneen pinta-ala = 1309 Huoneen tilavuus = 25132.8
Yllä oleva esimerkki on lähes identtinen ensimmäisen esimerkin kanssa, paitsi että luokan muuttujat ovat nyt yksityisiä.
Koska muuttujat ovat nyt yksityisiä, emme voi käyttää niitä suoraan main()
. Seuraavan koodin käyttäminen olisi siten virheellistä:
// invalid code obj.length = 42.5; obj.breadth = 30.8; obj.height = 19.2;
Sen sijaan käytämme julkisen tehtävän getData()
alustaa yksityiselle muuttujien kautta funktioparametrien double len
, double brth
ja double hgt
.
Lisätietoja esineistä ja luokista on seuraavissa aiheissa:
- C ++ -rakentajat
- Kuinka siirtää ja palauttaa objekti toiminnosta?