Objektorientētā programmēšana – kā norāda nosaukums, programmēšanā izmanto objektus. Objektorientētās programmēšanas mērķis ir ieviest programmēšanā tādas reālas entītijas kā mantojums, slēpšanās, polimorfisms utt. OOP galvenais mērķis ir saistīt kopā datus un ar tiem saistītās funkcijas, lai neviena cita koda daļa nevarētu piekļūt šiem datiem, izņemot šo funkciju.
Ir daži pamatjēdzieni, kas darbojas kā OOP pamatelementi, t.i.
- Klase
- Objekti
- Iekapsulēšana
- Abstrakcija
- Polimorfisms
- Mantojums
- Dinamiskā iesiešana
- Ziņojums tiek nodots
Objektorientētas programmēšanas valodas raksturojums
aprēķina termiņu programmā Excel
Klase
C++ pamatelements, kas noved pie objektorientētas programmēšanas, ir klase. Tas ir lietotāja definēts datu tips, kuram ir savi datu dalībnieki un dalībnieku funkcijas, kurām var piekļūt un kuras var izmantot, izveidojot šīs klases gadījumu. Klase ir kā objekta projekts. Piemēram: Apsveriet automašīnu klasi. Var būt daudz automašīnu ar dažādiem nosaukumiem un zīmoliem, taču tām visām būs dažas kopīgas īpašības, piemēram, visām tām būs 4 riteņi, ātruma ierobežojums, nobraukuma diapazons utt. Tātad šeit ir automašīna, un riteņi, ātruma ierobežojumi , un nobraukums ir to īpašības.
- Klase ir lietotāja definēts datu tips, kam ir datu dalībnieki un dalībnieku funkcijas.
- Datu elementi ir datu mainīgie, un biedru funkcijas ir funkcijas, ko izmanto, lai kopā ar šiem mainīgajiem apstrādātu šos datu elementus un dalībnieku funkcijas, kas nosaka klases objektu īpašības un uzvedību.
- Iepriekš minētajā automašīnas klases piemērā datu elements būs ātruma ierobežojums, nobraukums utt., un dalībnieka funkcijas var iedarbināt bremzes, palielināt ātrumu utt.
Mēs varam teikt, ka a Klase C++ ir projekts, kas attēlo objektu grupu, kam ir dažas kopīgas īpašības un darbības.
Objekts
Objekts ir identificējama vienība ar dažām īpašībām un uzvedību. Objekts ir klases gadījums. Kad klase ir definēta, atmiņa netiek piešķirta, bet, kad tā ir izveidota (t.i., tiek izveidots objekts), atmiņa tiek piešķirta.
C++ // C++ Program to show the syntax/working of Objects as a // part of Object Oriented PProgramming #include using namespace std; class person { char name[20]; int id; public: void getdetails() {} }; int main() { person p1; // p1 is a object return 0; }> Objekti aizņem vietu atmiņā, un tiem ir saistīta adrese, piemēram, ieraksts paskālā vai struktūrā vai savienībā. Kad programma tiek izpildīta, objekti mijiedarbojas, nosūtot ziņojumus viens otram. Katrs objekts satur datus un kodu, lai apstrādātu datus. Objekti var mijiedarboties, nezinot sīkāku informāciju par vienam otra datiem vai kodu, pietiek zināt pieņemtā ziņojuma veidu un objektu atgrieztās atbildes veidu.
Lai uzzinātu vairāk par C++ objektiem un klasēm, skatiet šo rakstu - C++ klases un objekti
Iekapsulēšana
Parasti iekapsulēšana ir definēta kā datu un informācijas iesaiņošana vienā vienībā. Objektorientētajā programmēšanā iekapsulēšana ir definēta kā datu un funkciju, kas ar tiem manipulē, saistīšana kopā. Apsveriet reālu iekapsulēšanas piemēru: uzņēmumā ir dažādas sadaļas, piemēram, kontu sadaļa, finanšu sadaļa, pārdošanas sadaļa utt. Finanšu sadaļa apstrādā visus finanšu darījumus un reģistrē visus ar finansēm saistītos datus. Tāpat pārdošanas sadaļa apstrādā visas ar pārdošanu saistītās darbības un reģistrē visu pārdošanu. Tagad var rasties situācija, kad finanšu nodaļas amatpersonai nez kāpēc ir nepieciešami visi dati par pārdošanas apjomu konkrētajā mēnesī. Šajā gadījumā viņam nav atļauts tieši piekļūt pārdošanas sadaļas datiem. Vispirms viņam būs jāsazinās ar kādu citu pārdošanas nodaļas darbinieku un pēc tam jāpieprasa sniegt konkrētos datus. Tā ir iekapsulēšana. Šeit pārdošanas sadaļas dati un darbinieki, kas var ar tiem manipulēt, ir ietīti zem viena nosaukuma pārdošanas sadaļas.

Iekapsulēšana C++ valodā
Iekapsulēšana arī noved pie datu abstrakcija vai datu slēpšana . Izmantojot iekapsulēšanu, dati tiek paslēpti. Iepriekš minētajā piemērā jebkuras sadaļas, piemēram, pārdošanas, finanšu vai kontu, dati ir paslēpti no jebkuras citas sadaļas.
Lai uzzinātu vairāk par iekapsulēšanu, skatiet šo rakstu - Iekapsulēšana C++ valodā
Abstrakcija
Datu abstrakcija ir viena no būtiskākajām un svarīgākajām objektorientētās programmēšanas iezīmēm C++. Abstrakcija nozīmē parādīt tikai būtisku informāciju un slēpt detaļas. Datu abstrakcija attiecas uz tikai būtiskas informācijas sniegšanu par datiem ārpasaulei, slēpjot fona detaļas vai ieviešanu. Apsveriet reālu piemēru, kad vīrietis vada automašīnu. Vīrietis zina tikai to, ka, nospiežot akseleratoru, palielinās automašīnas ātrums vai bremzēšana apturēs automašīnu, bet viņš nezina, kā, nospiežot akseleratoru, ātrums faktiski palielinās, viņš nezina par automašīnas iekšējo mehānismu vai akseleratora, bremžu utt. ieviešana automašīnā. Tā ir abstrakcija.
- Abstrakcija, izmantojot klases : Abstrakciju varam ieviest C++, izmantojot klases. Klase palīdz mums grupēt datu dalībniekus un dalībnieku funkcijas, izmantojot pieejamos piekļuves specifikācijas. Klase var izlemt, kurš datu dalībnieks būs redzams ārpasaulei un kurš nē.
- Abstrakcija galvenes failos : Vēl viens C++ abstrakcijas veids var būt galvenes faili. Piemēram, apsveriet pow() metodi, kas atrodas math.h galvenes failā. Ikreiz, kad mums ir jāaprēķina skaitļa jauda, mēs vienkārši izsaucam funkciju pow(), kas atrodas math.h galvenes failā un nododam skaitļus kā argumentus, nezinot pamatā esošo algoritmu, saskaņā ar kuru funkcija faktiski aprēķina skaitļu jaudu. .
Lai uzzinātu vairāk par C++ abstrakciju, skatiet šo rakstu - Abstrakcija programmā C++
Polimorfisms
Vārds polimorfisms nozīmē, ka tam ir daudz formu. Vienkāršiem vārdiem sakot, mēs varam definēt polimorfismu kā ziņojuma spēju parādīt vairāk nekā vienā formā. Personai tajā pašā laikā var būt dažādas īpašības. Vīrietis vienlaikus ir tēvs, vīrs un darbinieks. Tātad vienai un tai pašai personai dažādās situācijās ir atšķirīga uzvedība. To sauc par polimorfismu. Dažādos gadījumos operācijai var būt atšķirīga uzvedība. Darbība ir atkarīga no operācijā izmantoto datu veida. C++ atbalsta operatora pārslodzi un funkciju pārslodzi.
- Operatora pārslodze : Process, kurā operatoram dažādos gadījumos tiek panākta atšķirīga uzvedība, ir pazīstams kā operatora pārslodze.
- Funkciju pārslodze : funkciju pārslodze ir viena funkcijas nosaukuma izmantošana dažādu veidu uzdevumu veikšanai. Polimorfisms tiek plaši izmantots mantojuma īstenošanā.
Piemērs : Pieņemsim, ka mums ir jāraksta funkcija, lai pievienotu dažus veselus skaitļus, dažreiz ir 2 veseli skaitļi, bet dažreiz ir 3 veseli skaitļi. Mēs varam rakstīt pievienošanas metodi ar tādu pašu nosaukumu ar dažādiem parametriem, attiecīgā metode tiks izsaukta atbilstoši parametriem.

Polimorfisms C++ valodā
Lai uzzinātu vairāk par polimorfismu, skatiet šo rakstu - Polimorfisms C++ valodā
Mantojums
Tiek saukta klases spēja iegūt īpašības un raksturlielumus no citas klases Mantojums . Mantojums ir viena no svarīgākajām objektorientētās programmēšanas iezīmēm.
- Apakšklase : klase, kas manto rekvizītus no citas klases, tiek saukta par apakšklasi vai atvasinātu klasi.
- Super klase : Klase, kuras īpašības ir mantojusi apakšklase, tiek saukta par bāzes klasi vai virsklasi.
- Atkārtota izmantošana : Mantojums atbalsta atkārtotas izmantošanas jēdzienu, t.i., ja mēs vēlamies izveidot jaunu klasi un jau ir klase, kurā ir iekļauts kāds no mūsu vēlamā koda, mēs varam atvasināt savu jauno klasi no esošās klases. To darot, mēs atkārtoti izmantojam esošās klases laukus un metodes.
Piemērs : suns, kaķis, govs var būt atvasināta dzīvnieku bāzes klase.
nulles

Mantojums C++ valodā
Lai uzzinātu vairāk par mantojumu, skatiet šo rakstu - Mantojums C++ valodā
livecricket.is
Dinamiskā iesiešana
Dinamiskajā saistīšanā kods, kas jāizpilda, atbildot uz funkcijas izsaukumu, tiek izlemts izpildlaikā. C++ ir virtuālās funkcijas lai to atbalstītu. Tā kā dinamiskā saistīšana ir elastīga, tā novērš statiskās saistīšanas trūkumus, kas savienoja funkcijas izsaukumu un definīciju veidošanas laikā.
Piemērs:
C++ // C++ Program to Demonstrate the Concept of Dynamic binding // with the help of virtual function #include using namespace std; class GFG { public: void call_Function() // function that call print { print(); } void print() // the display function { cout << 'Printing the Base class Content' << endl; } }; class GFG2 : public GFG // GFG2 inherit a publicly { public: void print() // GFG2's display { cout << 'Printing the Derived class Content' << endl; } }; int main() { GFG geeksforgeeks; // Creating GFG's object geeksforgeeks.call_Function(); // Calling call_Function GFG2 geeksforgeeks2; // creating GFG2 object geeksforgeeks2.call_Function(); // calling call_Function // for GFG2 object return 0; }> Izvade
Printing the Base class Content Printing the Base class Content>
Kā redzam, vecākklases funkcija print() tiek izsaukta pat no atvasinātā klases objekta. Lai to atrisinātu, mēs izmantojam virtuālās funkcijas.
Iepriekš minētais piemērs ar virtuālo funkciju:
C++ #include using namespace std; class GFG { public: void call_Function() // function that call print { print(); } virtual void print() // using 'virtual' for the display function { cout << 'Printing the Base class Content' << endl; } }; class GFG2 : public GFG // GFG2 inherit a publicly { public: void print() // GFG2's display { cout << 'Printing the Derived class Content' << endl; } }; int main() { GFG geeksforgeeks; // Creating GFG's object geeksforgeeks.call_Function(); // Calling call_Function GFG2 geeksforgeeks2; // creating GFG2 object geeksforgeeks2.call_Function(); // calling call_Function // for GFG2 object return 0; } //this code is contributed by Md Nizamuddin> Izvade
Printing the Base class Content Printing the Derived class Content>
Ziņojums tiek nodots
Objekti sazinās viens ar otru, nosūtot un saņemot informāciju. Ziņojums objektam ir procedūras izpildes pieprasījums, un tāpēc saņemošā objektā tiks izsaukta funkcija, kas ģenerē vēlamos rezultātus. Ziņojuma nodošana ietver objekta nosaukuma, funkcijas nosaukuma un nosūtāmās informācijas norādīšanu.
Piemērs:
C++ #include using namespace std; // Define a Car class with a method to display its speed class Car { public: void displaySpeed(int speed) { cout << 'The car is moving at ' << speed << ' km/h.' << endl; } }; int main() { // Create a Car object named myCar Car myCar; // Send a message to myCar to execute the displaySpeed method int currentSpeed = 100; myCar.displaySpeed(currentSpeed); return 0; } //this code is contributed by Md Nizamuddin>
Saistītie raksti :
- Klases un objekti
- Mantojums
- Piekļuves modifikatori
- Abstrakcija