logo

C++ OOPs-concepten

Het belangrijkste doel van programmeren in C++ is om het concept van objectoriëntatie te introduceren in de programmeertaal C.

Objectgeoriënteerd programmeren is een paradigma dat veel concepten biedt, zoals overerving, databinding, polymorfisme enz.

Het programmeerparadigma waarin alles wordt weergegeven als een object staat bekend als een echt objectgeoriënteerde programmeertaal. Koetjes en kalfjes wordt beschouwd als de eerste echt objectgeoriënteerde programmeertaal.


OOP's (objectgeoriënteerd programmeersysteem)

Voorwerp betekent een echte woordentiteit zoals pen, stoel, tafel enz. Object georiënteerd programmeren is een methodologie of paradigma om een ​​programma te ontwerpen met behulp van klassen en objecten. Het vereenvoudigt de softwareontwikkeling en het onderhoud door enkele concepten te bieden:

java lambda voorbeeld
Cpp Oeps concept 1
  • Voorwerp
  • Klas
  • Erfenis
  • Polymorfisme
  • Abstractie
  • Inkapseling

Voorwerp

Elke entiteit die een toestand en gedrag heeft, staat bekend als een object. Bijvoorbeeld: stoel, pen, tafel, toetsenbord, fiets etc. Het kan fysiek en logisch zijn.

Klas

Verzameling van objecten heet klasse. Het is een logisch geheel.

Een klasse in C++ is het fundamentele element dat leidt tot objectgeoriënteerd programmeren. Er moet een klasse-instantie worden gemaakt om toegang te krijgen tot en gebruik te maken van de gegevensleden en lidfuncties van het door de gebruiker gedefinieerde gegevenstype. De klasse van een object fungeert als blauwdruk. Neem als voorbeeld de autoklasse. Zelfs als er verschillende namen en merken voor verschillende auto's worden gebruikt, zullen ze allemaal een aantal kenmerken gemeen hebben, zoals vier wielen, een snelheidslimiet, een bereik in kilometers, enz. In dit geval wordt de autoklasse weergegeven door de wielen, de snelheidsbeperkingen en de kilometerstand.

Erfenis

Wanneer één object alle eigenschappen en gedragingen van het bovenliggende object verwerft dat wil zeggen bekend als erfenis. Het biedt herbruikbaarheid van code. Het wordt gebruikt om runtime-polymorfisme te bereiken.

  1. Subklasse - Subklasse of afgeleide klasse verwijst naar een klasse die eigenschappen van een andere klasse ontvangt.
  2. Superklasse - De term 'Base Class' of 'Super Class' verwijst naar de klasse waarvan een subklasse zijn eigenschappen overneemt.
  3. Herbruikbaarheid - Als gevolg hiervan kunnen we, als we een nieuwe klasse willen maken, maar een bestaande klasse al een deel van de code bevat die we nodig hebben, dankzij overerving onze nieuwe klasse uit de oude klasse genereren. Hierdoor kunnen we de velden en methoden van de reeds bestaande klasse gebruiken.

Polymorfisme

Wanneer één taak wordt op verschillende manieren uitgevoerd dat wil zeggen bekend als polymorfisme. Bijvoorbeeld: de klant anders overtuigen, iets tekenen, b.v. vorm of rechthoek etc.

Verschillende situaties kunnen ervoor zorgen dat een operatie zich anders gedraagt. Het type gegevens dat bij de bewerking wordt gebruikt, bepaalt het gedrag.

Abstractie

Interne details verbergen en functionaliteit tonen staat bekend als abstractie. Gegevensabstractie is het proces waarbij alleen de informatie die absoluut noodzakelijk is aan de buitenwereld wordt getoond, terwijl implementatie- of achtergrondinformatie verborgen blijft. Bijvoorbeeld: telefoongesprek, we kennen de interne verwerking niet.

In C++ gebruiken we abstracte klasse en interface om abstractie te bereiken.

Inkapseling

Het samenbinden (of inpakken) van code en gegevens in één enkele eenheid staat bekend als inkapseling. Bijvoorbeeld: capsule, deze is omwikkeld met verschillende medicijnen.

arp-a-opdracht

Inkapseling wordt doorgaans opgevat als het groeperen van gerelateerde stukjes informatie en gegevens in één enkele entiteit. Inkapseling is het proces waarbij gegevens en de functies die ermee werken bij objectgeoriënteerd programmeren aan elkaar worden gekoppeld. Kijk eens naar een praktisch voorbeeld van inkapseling: bij een bedrijf zijn er verschillende afdelingen, waaronder de verkoopafdeling, de financiële afdeling en de boekhoudafdeling. Alle financiële transacties worden afgehandeld door de financiële sector, die ook alle financiële gegevens bijhoudt. Op dezelfde manier is de verkoopafdeling verantwoordelijk voor alle taken met betrekking tot de verkoop en wordt van elke verkoop een register bijgehouden. Er zou zich een scenario kunnen voordoen waarin een financiële functionaris om de een of andere reden alle informatie over de verkopen voor een specifieke maand nodig heeft. Onder de overkoepelende term 'verkoopsectie' zijn alle medewerkers gegroepeerd die invloed kunnen uitoefenen op de gegevens van de verkoopsectie. Gegevensabstractie of -verhullen is een ander neveneffect van inkapseling. Op dezelfde manier verbergt inkapseling de gegevens. In het bovengenoemde voorbeeld heeft geen enkel ander gebied toegang tot de gegevens uit een van de secties, zoals verkoop, financiën of accounts.

Dynamische binding - Bij dynamische binding wordt tijdens runtime een beslissing genomen over de code die wordt uitgevoerd als reactie op een functieaanroep. Hiervoor ondersteunt C++ virtuele functies.

Voordeel van OOP's ten opzichte van proceduregerichte programmeertaal

  1. OOP's maken ontwikkeling en onderhoud eenvoudiger, terwijl het, net als in proceduregerichte programmeertaal, niet eenvoudig te beheren is als de code groeit naarmate de projectgrootte groeit.
  2. OOP's bieden gegevensverberging, terwijl in proceduregerichte programmeertaal globale gegevens overal toegankelijk zijn.
  3. OOP's bieden de mogelijkheid om gebeurtenissen uit de echte wereld veel effectiever te simuleren. We kunnen de oplossing bieden voor een echt woordprobleem als we de objectgeoriënteerde programmeertaal gebruiken.

Waarom hebben we oeps nodig in C++?

Er waren verschillende nadelen aan de vroege programmeermethoden, evenals slechte prestaties. Deze aanpak kon problemen uit de echte wereld niet effectief aanpakken, omdat je, net als bij procedureel georiënteerd programmeren, de code binnen het programma niet opnieuw kon gebruiken, er een probleem was met de wereldwijde toegang tot gegevens, enzovoort.

Met het gebruik van klassen en objecten maakt objectgeoriënteerd programmeren het onderhoud van code eenvoudig. Omdat overerving hergebruik van code mogelijk maakt, is het programma eenvoudiger omdat u niet herhaaldelijk dezelfde code hoeft te schrijven. Het verbergen van gegevens wordt ook mogelijk gemaakt door ideeën als inkapseling en abstractie.

Waarom is C++ een gedeeltelijke oep?

De objectgeoriënteerde kenmerken van de C-taal waren de belangrijkste motivatie achter de constructie van de C++-taal.

De programmeertaal C++ wordt gecategoriseerd als een gedeeltelijk objectgeoriënteerde programmeertaal, ondanks het feit dat het OOP-concepten ondersteunt, waaronder klassen, objecten, overerving, inkapseling, abstractie en polymorfisme.

1) De hoofdfunctie moet in C++ altijd buiten de klasse liggen en is vereist. Dit betekent dat we het zonder klassen en objecten kunnen stellen en één hoofdfunctie in de applicatie hebben.

In dit geval wordt het uitgedrukt als een object, wat de eerste keer is dat Pure OOP wordt geschonden.

jfx java-tutorial

2) Globale variabelen zijn een kenmerk van de programmeertaal C++ waartoe elk ander object binnen het programma toegang heeft en die daarbuiten worden gedefinieerd. De inkapseling is hier verbroken. Hoewel C++ inkapseling voor klassen en objecten aanmoedigt, negeert het dit voor globale variabelen.

Overbelasting

Polymorfisme heeft ook een subset die bekend staat als overbelasting. Er wordt gezegd dat een bestaande operator of functie overbelast raakt wanneer deze wordt gedwongen om op een nieuw gegevenstype te werken.

Conclusie

Na het lezen van deze cursus over OOPS-concepten in C++ heb je inzicht gekregen in de behoefte aan objectgeoriënteerd programmeren, wat C++ OOPs zijn, en de grondbeginselen van OOPs, zoals polymorfisme, overerving, inkapseling, etc.. Naast voorbeelden van polymorfisme en overerving leerde je ook over de voordelen van C++ OOP's.