C ++ osztályok és objektumok

Ebben az oktatóanyagban példák segítségével megismerhetjük az objektumokat és az osztályokat, valamint azok használatát a C ++ nyelven.

A korábbi oktatóanyagokban megismerkedtünk a függvényekkel és a változókkal. Néha kívánatos a kapcsolódó funkciókat és adatokat egy helyre tenni, így logikus és könnyebben kezelhető.

Tegyük fel, hogy tárolnunk kell egy téglalap alakú helyiség hosszát, szélességét és magasságát, és ki kell számolnunk annak területét és térfogatát.

Ahhoz, hogy kezelni ezt a feladatot, mi is létrehozhatunk három változót, mondjuk, hosszúság, szélesség, magasság és együtt funkciók calculateArea()és calculateVolume().

Ugyanakkor a C ++ - ban külön változók és függvények létrehozása helyett ezeket a kapcsolódó adatokat és függvényeket is egyetlen helyre csomagolhatjuk ( objektumok létrehozásával ). Ezt a programozási paradigmát objektum-orientált programozásnak nevezik.
Mielőtt azonban objektumokat készíthetnénk és felhasználhatnánk a C ++ - ban, először meg kell tanulnunk az osztályokat .

C ++ osztály

Az osztály az objektum tervrajza.
Az osztályra úgy gondolhatunk, mint egy ház vázlatára (prototípusára). Minden részletet tartalmaz a padlókról, ajtókról, ablakokról stb. Ezen leírások alapján építjük a házat. A ház az objektum.

Hozzon létre egy osztályt

Egy osztályt a C ++ nyelven definiálunk kulcsszóval, classamelyet az osztály neve követ.

Az osztály törzse a göndör zárójelben található, és a végén pontosvessző végződik.

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

Például,

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

Itt definiáltunk egy nevű osztályt Room.

A változók hosszúság, szélesség, magasság és kijelentette, az osztályon belül ismert adatok a tagok . És a funkciókat calculateArea()és calculateVolume()az úgynevezett tagsági függvények egy osztály.

C ++ objektumok

Osztály megadásakor csak az objektum specifikációja kerül meghatározásra; nincs memória vagy tárhely kiosztva.

Az osztályban meghatározott adat- és hozzáférési funkciók használatához objektumokat kell létrehoznunk.

Szintaxis az objektum meghatározásához a C ++ nyelven

 className objectVariableName;

RoomOsztályú (a fenti példában definiált) objektumokat a következőképpen hozhatunk létre :

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

Itt két objektum Roomjön létre az osztály 1. és 2. szobájában sampleFunction(). Hasonlóképpen, a 3. és a 4. szoba objektumok létrehozva vannak main().

Mint láthatjuk, a program bármely funkciójában létrehozhatunk egy osztály objektumait. Létrehozhatunk egy osztály objektumait magában az osztályban vagy más osztályokban is.

Emellett annyi objektumot hozhatunk létre, amennyit csak akarunk egyetlen osztályból.

C ++ hozzáférési adatok tagjai és tagfunkciói

Az osztály adattagjaihoz és tagfüggvényeihez egy .(pont) operátor segítségével férhetünk hozzá . Például,

 room2.calculateArea();

Ez meghívja a 2. osztály objektumon calculateArea()belüli függvényt Room.

Hasonlóképpen az adattagok a következőképpen érhetők el:

 room1.length = 5.5;

Ebben az esetben inicializálja az 1. szoba hosszváltozóját 5.5.

1. példa: Objektum és osztály a C ++ programozásban

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

Kimenet

 A szoba területe = 1309 A szoba térfogata = 25132.8

Ebben a programban az Roomosztályt és annak objektumát1 használtuk a helyiség területének és térfogatának kiszámításához.

A main()kódban hozzárendeltük a hosszúság, a szélesség és a magasság értékeit:

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

Ezután meghívtuk a függvényeket calculateArea()és calculateVolume()elvégezzük a szükséges számításokat.

Vegye figyelembe a kulcsszó használatát publica programban. Ez azt jelenti, hogy a tagok nyilvánosak és bárhonnan elérhetõk a programból.

Igényeinknek megfelelően privát tagokat is létrehozhatunk a privatekulcsszó használatával. Az osztály privát tagjai csak az osztályon belül férhetnek hozzá. Például,

 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.

Másrészt, b és function2()a program mindenhonnan elérhetők.

Ha többet szeretne megtudni a nyilvános és privát kulcsszavakról, keresse fel a C ++ osztályú hozzáférés-módosító oktatóanyagunkat.

2. példa: Nyilvános és magánhasználat a C ++ osztályban

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

Kimenet

 A szoba területe = 1309 A szoba térfogata = 25132.8

A fenti példa majdnem megegyezik az első példával, azzal a különbséggel, hogy az osztályváltozók immár privátak.

Mivel a változók immár privátak, nem férhetünk hozzájuk közvetlenül main(). Ezért a következő kód használata érvénytelen lenne:

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

Ehelyett használja a nyilvános funkciót getData()elindítani a privát változók segítségével a függvény paramétereit double len, double brthés double hgt.

Ha többet szeretne megtudni az objektumokról és az osztályokról, keresse fel ezeket a témákat:

  • C ++ kivitelezők
  • Hogyan adhatunk át és adhatunk vissza egy objektumot egy függvényből?

érdekes cikkek...