C ++ klassen en objecten

In deze tutorial leren we met behulp van voorbeelden over objecten en klassen en hoe je ze in C ++ kunt gebruiken.

In eerdere tutorials hebben we geleerd over functies en variabelen. Soms is het wenselijk om gerelateerde functies en gegevens op één plek te plaatsen, zodat het logisch is en gemakkelijker om mee te werken.

Stel dat we de lengte, breedte en hoogte van een rechthoekige kamer moeten opslaan en de oppervlakte en het volume ervan moeten berekenen.

Om deze taak uit te voeren, kunnen we drie variabelen maken, bijvoorbeeld lengte, breedte en hoogte, samen met de functies calculateArea()en calculateVolume().

In C ++ kunnen we echter, in plaats van afzonderlijke variabelen en functies te maken, deze gerelateerde gegevens en functies ook op één plek plaatsen (door objecten te maken ). Dit programmeerparadigma staat bekend als objectgeoriënteerd programmeren.
Maar voordat we objecten kunnen maken en deze in C ++ kunnen gebruiken, moeten we eerst meer te weten komen over klassen .

C ++ Klasse

Een klasse is een blauwdruk voor het object.
We kunnen een klas zien als een schets (prototype) van een huis. Hierin staan ​​alle details over de vloeren, deuren, ramen etc. Op basis van deze beschrijvingen bouwen we het huis. Huis is het object.

Creëer een klas

Een klasse wordt gedefinieerd in C ++ met behulp van een trefwoord classgevolgd door de naam van de klasse.

De hoofdtekst van de klasse wordt gedefinieerd tussen de accolades en aan het einde met een puntkomma.

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

Bijvoorbeeld,

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

Hier hebben we een klasse gedefinieerd met de naam Room.

De variabelen lengte, breedte en hoogte die binnen de klasse zijn gedeclareerd, worden gegevensleden genoemd . En de functies calculateArea()en calculateVolume()staan ​​bekend als lidfuncties van een klasse.

C ++ -objecten

Wanneer een klasse is gedefinieerd, wordt alleen de specificatie voor het object gedefinieerd; er is geen geheugen of opslag toegewezen.

Om de gegevens- en toegangsfuncties te gebruiken die in de klasse zijn gedefinieerd, moeten we objecten maken.

Syntaxis om object te definiëren in C ++

 className objectVariableName;

We kunnen klasseobjecten Room(gedefinieerd in het bovenstaande voorbeeld) als volgt maken:

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

Hier worden twee objecten room1 en room2 van de Roomklas gemaakt in sampleFunction(). Evenzo worden de objecten room3 en room4 gemaakt in main().

Zoals we kunnen zien, kunnen we objecten van een klasse maken in elke functie van het programma. We kunnen ook objecten van een klasse binnen de klasse zelf of in andere klassen maken.

We kunnen ook zoveel objecten maken als we willen vanuit een enkele klasse.

C ++ Toegangsgegevens Leden en Ledenfuncties

We hebben toegang tot de gegevensleden en lidfuncties van een klasse met behulp van een .(punt) operator. Bijvoorbeeld,

 room2.calculateArea();

Dit roept de calculateArea()functie binnen de Roomklasse voor object room2 aan.

Evenzo zijn de gegevensleden toegankelijk als:

 room1.length = 5.5;

In dit geval initialiseert het de lengtevariabele van room1 naar 5.5.

Voorbeeld 1: Object en klasse in C ++ - programmering

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

Uitvoer

 Ruimte van kamer = 1309 Volume van kamer = 25132,8

In dit programma hebben we de Roomklasse en de objectruimte1 gebruikt om de oppervlakte en het volume van een ruimte te berekenen.

In main()hebben we de waarden van lengte, breedte en hoogte toegewezen met de code:

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

Vervolgens hebben we de functies gebeld calculateArea()en calculateVolume()de nodige berekeningen uitgevoerd.

Let op het gebruik van het trefwoord publicin het programma. Dit betekent dat de leden openbaar zijn en overal in het programma toegankelijk zijn.

Volgens onze behoeften kunnen we ook privé-leden maken met behulp van het privatetrefwoord. De privéleden van een klas zijn alleen toegankelijk vanuit de klas. Bijvoorbeeld,

 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.

Aan de andere kant zijn b en function2()overal in het programma toegankelijk.

Ga voor meer informatie over openbare en privé-trefwoorden naar onze tutorial C ++ Class Access Modifiers.

Voorbeeld 2: openbaar en privé gebruiken in C ++ - klasse

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

Uitvoer

 Ruimte van kamer = 1309 Volume van kamer = 25132,8

Het bovenstaande voorbeeld is bijna identiek aan het eerste voorbeeld, behalve dat de klassevariabelen nu privé zijn.

Omdat de variabelen nu privé zijn, kunnen we ze niet rechtstreeks openen vanuit main(). Daarom zou het gebruik van de volgende code ongeldig zijn:

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

In plaats daarvan gebruiken we de publieke functie getData()van de private variabelen initialiseren via de functie parameters double len, double brthen double hgt.

Bezoek deze onderwerpen voor meer informatie over objecten en klassen:

  • C ++ Constructors
  • Hoe een object van een functie doorgeven en retourneren?

Interessante artikelen...