Objektorienteret programmering i C ++

Objektorienteret programmering, kort sagt OOP, sigter mod at implementere virkelige verdensenheder som arv, skjul og polymorfisme i programmering.

Hovedformålet med OOP er at binde dataene og funktionerne, der fungerer på dem, sammen, så ingen anden del af koden kan få adgang til disse data undtagen denne funktion.

Lad os lære om forskellige egenskaber ved et objektorienteret programmeringssprog.

Objekt:

Objekter er grundlæggende runtime-enheder i et objektorienteret system. Objekter er forekomster af en klasse, der er brugerdefinerede datatyper.

class person { char name[20]; int id; public: void getdetails(){} }; int main() { person p1; //p1 is an object }

Objekter optager plads i hukommelsen og har en tilknyttet adresse som en post i pascal eller en struktur eller union i C.

Når et program udføres, interagerer objekterne ved at sende meddelelser til hinanden.

Hvert objekt indeholder data og kode til at manipulere dataene. Objekter kan interagere uden at skulle kende detaljerne i hinandens data eller kode. Det er nok at vide, hvilken type besked der er accepteret, og hvilken type svar der returneres af objekterne.

Klasse:

En klasse er en plan for data og funktioner eller metoder. Klassen tager ikke plads.

class class_name { private: //data members and member functions declarations public: //data members and member functions declarations protected: //data members and member functions declarations };

Klasse er en brugerdefineret datatype som strukturer og fagforeninger i C.

Klassevariabler er som standard private, men i tilfælde af struktur er de offentlige. I ovenstående eksempel er personen en klasse.

Indkapsling og dataabstraktion:

Indpakning (kombination) af data og funktioner i en enkelt enhed kaldes indkapsling. Dataene er ikke tilgængelige for omverdenen, og kun de funktioner, der omslutter klassen, kan få adgang til dem. Denne isolering af dataene fra direkte adgang fra programmet kaldes dataskydning eller informationshidring.

Dataabstraktion henviser til at give kun nødvendig information til omverdenen og skjule implementeringsoplysninger.

Overvej f.eks. Et klassekompleks med offentlige funktioner getReal () og getImag (). Vi implementerer muligvis klassen som en matrix af størrelse 2 eller som to variabler.

Fordelen ved abstraktion er, at vi kan ændre implementeringen til enhver tid, og brugerne af Complex-klassen vil ikke blive påvirket, da vores metodeinterface forbliver den samme. Havde vores implementering været offentlig, ville vi ikke have været i stand til at ændre den.

Arv:

Arv er den proces, hvormed objekter fra en klasse erhverver egenskaberne for objekter fra en anden klasse. Det understøtter begrebet hierarkisk klassificering.

Arv giver genanvendelighed. Dette betyder, at vi kan tilføje yderligere funktioner til en eksisterende klasse uden at ændre den.

Polymorfisme:

Polymorfisme henviser til evnen til at tage mere end én form. En operation kan udvise forskellig opførsel i forskellige tilfælde. Adfærden afhænger af de typer data, der bruges i operationen.

C ++ understøtter operatøroverbelastning og funktionsoverbelastning. Operatøroverbelastning er processen med at få en operatør til at udvise forskellige adfærd i forskellige tilfælde. Funktionsoverbelastning bruger et enkelt funktionsnavn til at udføre forskellige typer opgaver. Polymorfisme bruges i vid udstrækning til implementering af arv.

Dynamisk binding:

I dynamisk binding bestemmes koden, der skal udføres som svar på et funktionsopkald, ved kørsel. C ++ har virtuelle funktioner til at understøtte dette.

Meddelelse videregives:

Objekter kommunikerer med hinanden ved at sende og modtage information til hinanden. En meddelelse til et objekt er en anmodning om, at en procedure skal udføres, og derfor påkalder den en funktion i det modtagende objekt, der genererer de ønskede resultater.

Meddelelse ved meddelelse indebærer at specificere objektets navn, funktionens navn og de oplysninger, der skal sendes.

Mere information

Objektorienteret programmeringskoncepter: Sådan går du fra nul til en med objekter

Sådan forklares objektorienterede programmeringskoncepter til en 6-årig