C ++ klasser och objekt

I den här handledningen lär vi oss om objekt och klasser och hur man använder dem i C ++ med hjälp av exempel.

I tidigare handledning lärde vi oss om funktioner och variabler. Ibland är det önskvärt att placera relaterade funktioner och data på ett ställe så att det är logiskt och lättare att arbeta med.

Antag att vi måste lagra längden, bredden och höjden på ett rektangulärt rum och beräkna dess yta och volym.

För att hantera denna uppgift kan vi skapa tre variabler, säg längd, bredd och höjd tillsammans med funktionerna calculateArea()och calculateVolume().

I C ++ kan vi, i stället för att skapa separata variabler och funktioner, också slå in dessa relaterade data och funktioner på en enda plats (genom att skapa objekt ). Detta programmeringsparadigm är känt som objektorienterad programmering.
Men innan vi kan skapa objekt och använda dem i C ++ måste vi först lära oss mer om klasser .

C ++ klass

En klass är en ritning för objektet.
Vi kan tänka på en klass som en skiss (prototyp) av ett hus. Den innehåller alla detaljer om golv, dörrar, fönster etc. Baserat på dessa beskrivningar bygger vi huset. Huset är objektet.

Skapa en klass

En klass definieras i C ++ med hjälp av nyckelord classföljt av namnet på klassen.

Klassens kropp definieras i de lockiga parenteserna och avslutas med ett semikolon i slutet.

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

Till exempel,

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

Här definierade vi en klass med namnet Room.

Variablerna längd, bredd och höjd som deklarerats inuti klassen kallas data-medlemmar . Och funktionerna calculateArea()och calculateVolume()är kända som medlemsfunktioner i en klass.

C ++ - objekt

När en klass definieras definieras endast specifikationen för objektet; inget minne eller minne lagras.

För att kunna använda de data- och åtkomstfunktioner som definierats i klassen måste vi skapa objekt.

Syntax för att definiera objekt i C ++

 className objectVariableName;

Vi kan skapa objekt av Roomklass (definierade i exemplet ovan) enligt följande:

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

Här skapas två objekt rum1 och rum2 i Roomklassen sampleFunction(). På samma sätt skapas objekten room3 och room4 i main().

Som vi kan se kan vi skapa objekt i en klass i valfri funktion i programmet. Vi kan också skapa objekt av en klass inom själva klassen eller i andra klasser.

Vi kan också skapa så många objekt som vi vill från en enda klass.

C ++ Åtkomstdatamedlemmar och medlemsfunktioner

Vi kan komma åt datamedlemmarna och medlemsfunktionerna i en klass med hjälp av en .(punkt) operatör. Till exempel,

 room2.calculateArea();

Detta kommer att anropa calculateArea()funktionen inuti Roomklassen för objektrum2.

På samma sätt kan datamedlemmarna nås som:

 room1.length = 5.5;

I det här fallet initialiseras den längdvariabeln för rum1 till 5.5.

Exempel 1: Objekt och klass i 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; )

Produktion

 Rumsområde = 1309 Rumsvolym = 25132.8

I detta program har vi använt Roomklassen och dess objektrum1 för att beräkna ett rums area och volym.

I main()tilldelade vi värdena längd, bredd och höjd med koden:

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

Vi ringde sedan till funktionerna calculateArea()och för calculateVolume()att utföra nödvändiga beräkningar.

Observera användningen av nyckelordet publici programmet. Detta innebär att medlemmarna är offentliga och kan nås var som helst från programmet.

Enligt våra behov kan vi också skapa privata medlemmar med hjälp av privatenyckelordet. De privata medlemmarna i en klass kan endast nås från klassen. Till exempel,

 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.

Å andra sidan, b och function2()är tillgängliga från överallt i programmet.

För att lära dig mer om offentliga och privata nyckelord, besök vår C ++ klassåtkomstmodifierare.

Exempel 2: Använd offentlig och privat i C ++ - klass

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

Produktion

 Rumsområde = 1309 Rumsvolym = 25132.8

Ovanstående exempel är nästan identiskt med det första exemplet, förutom att klassvariablerna nu är privata.

Eftersom variablerna nu är privata kan vi inte komma åt dem direkt från main(). Följaktligen skulle följande kod vara ogiltig:

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

Istället använder vi den offentliga funktionen för getData()att initialisera de privata variablerna via funktionsparametrarna double len, double brthoch double hgt.

Om du vill lära dig mer om objekt och klasser besöker du dessa ämnen:

  • C ++ konstruktörer
  • Hur skickar och returnerar ett objekt från en funktion?

Intressanta artiklar...