Objektorientert programmering - Som navnet antyder bruker objekter i programmering. Objektorientert programmering tar sikte på å implementere virkelige enheter som arv, skjul, polymorfisme, etc. i programmering. Hovedmålet med OOP er å binde sammen dataene og funksjonene som opererer på dem, slik at ingen andre deler av koden kan få tilgang til disse dataene bortsett fra den funksjonen.
Det er noen grunnleggende konsepter som fungerer som byggesteinene til OOP, dvs.
- Klasse
- Objekter
- Innkapsling
- Abstraksjon
- Polymorfisme
- Arv
- Dynamisk binding
- Melding passerer
Kjennetegn ved et objektorientert programmeringsspråk
pandaer og numpy
Klasse
Byggeklossen til C++ som fører til objektorientert programmering er en klasse. Det er en brukerdefinert datatype, som har sine egne datamedlemmer og medlemsfunksjoner, som kan nås og brukes ved å opprette en forekomst av den klassen. En klasse er som en blåkopi for et objekt. For eksempel: Tenk på bilklassen. Det kan være mange biler med forskjellige navn og merker, men alle vil dele noen felles egenskaper som alle vil ha 4 hjul, fartsgrense, kjørelengde osv. Så her er bilen klassen, og hjul, fartsgrenser , og kjørelengde er deres egenskaper.
- En klasse er en brukerdefinert datatype som har datamedlemmer og medlemsfunksjoner.
- Datamedlemmer er datavariablene og medlemsfunksjoner er funksjonene som brukes til å manipulere disse variablene sammen. Disse datamedlemmene og medlemsfunksjonene definerer egenskapene og oppførselen til objektene i en klasse.
- I eksemplet ovenfor av klasse Bil vil datamedlemmet være fartsgrense, kjørelengde osv. og medlemsfunksjoner kan sette på bremser, øke hastigheten osv.
Vi kan si at a Klasse i C++ er en blåkopi som representerer en gruppe objekter som deler noen vanlige egenskaper og atferd.
Gjenstand
Et objekt er en identifiserbar enhet med noen egenskaper og atferd. Et objekt er en forekomst av en klasse. Når en klasse er definert, tildeles ikke noe minne, men når det er instansiert (dvs. et objekt opprettes) tildeles minne.
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; }> Objekter tar opp plass i minnet og har en tilknyttet adresse som en post i pascal eller struktur eller union. Når et program kjøres, samhandler objektene ved å sende meldinger til hverandre. Hvert objekt inneholder data og kode for å manipulere dataene. Objekter kan samhandle uten å måtte vite detaljer om hverandres data eller kode, det er tilstrekkelig å vite hvilken type melding som er akseptert og typen respons som returneres av objektene.
For å vite mer om C++-objekter og -klasser, se denne artikkelen – C++ klasser og objekter
Innkapsling
Normalt sett er innkapsling definert som å samle data og informasjon under en enkelt enhet. I objektorientert programmering er Encapsulation definert som å binde sammen dataene og funksjonene som manipulerer dem. Tenk på et virkelighetseksempel på innkapsling, i et selskap er det forskjellige seksjoner som regnskapsseksjonen, finansseksjonen, salgsseksjonen, etc. Finansseksjonen håndterer alle økonomiske transaksjoner og holder oversikt over alle data relatert til finans. På samme måte håndterer salgsseksjonen alle salgsrelaterte aktiviteter og fører oversikt over alt salg. Nå kan det oppstå en situasjon når en tjenestemann fra finansseksjonen av en eller annen grunn trenger alle data om salg i en bestemt måned. I dette tilfellet har han ikke direkte tilgang til dataene til salgsseksjonen. Han må først kontakte en annen offiser i salgsseksjonen og deretter be ham om å gi de spesielle dataene. Dette er hva innkapsling er. Her er dataene til salgsseksjonen og de ansatte som kan manipulere dem pakket inn under en enkelt navn salgsseksjon.

Innkapsling i C++
Innkapsling fører også til dataabstraksjon eller dataskjuling . Bruk av innkapsling skjuler også dataene. I eksemplet ovenfor er dataene til en av seksjonene som salg, finans eller kontoer skjult fra alle andre seksjoner.
string array c
For å vite mer om innkapsling, se denne artikkelen - Innkapsling i C++
Abstraksjon
Dataabstraksjon er en av de viktigste og viktigste funksjonene ved objektorientert programmering i C++. Abstraksjon betyr å vise bare viktig informasjon og skjule detaljene. Dataabstraksjon refererer til å gi kun viktig informasjon om dataene til omverdenen, skjule bakgrunnsdetaljene eller implementeringen. Tenk på et ekte eksempel på en mann som kjører bil. Mannen vet bare at å trykke på gasspedalen vil øke hastigheten på bilen eller å bruke bremser vil stoppe bilen, men han vet ikke hvordan hastigheten faktisk øker ved å trykke på gasspedalen, han vet ikke om den indre mekanismen til bilen eller implementering av gasspedal, bremser osv. i bilen. Dette er hva abstraksjon er.
- Abstraksjon ved hjelp av klasser : Vi kan implementere Abstraksjon i C++ ved å bruke klasser. Klassen hjelper oss å gruppere datamedlemmer og medlemsfunksjoner ved å bruke tilgjengelige tilgangspesifikasjoner. En klasse kan bestemme hvilket datamedlem som skal være synlig for omverdenen og hvilket som ikke er det.
- Abstraksjon i Header-filer : En annen type abstraksjon i C++ kan være header-filer. Vurder for eksempel pow()-metoden som finnes i math.h-headerfilen. Når vi trenger å beregne potensen til et tall, kaller vi ganske enkelt funksjonen pow() som er tilstede i math.h header-filen og sender tallene som argumenter uten å vite den underliggende algoritmen som funksjonen faktisk beregner potensen til tall i henhold til .
For å vite mer om C++ abstraksjon, se denne artikkelen - Abstraksjon i C++
Polymorfisme
Ordet polymorfisme betyr å ha mange former. Med enkle ord kan vi definere polymorfisme som evnen til en melding til å vises i mer enn én form. En person på samme tid kan ha ulike egenskaper. En mann er samtidig en far, en ektemann og en ansatt. Så samme person har forskjellig oppførsel i forskjellige situasjoner. Dette kalles polymorfisme. En operasjon kan vise ulik oppførsel i forskjellige tilfeller. Atferden avhenger av typene data som brukes i operasjonen. C++ støtter operatøroverbelastning og funksjonsoverbelastning.
- Operatør overbelastning : Prosessen med å få en operatør til å vise forskjellig atferd i forskjellige tilfeller er kjent som operatøroverbelastning.
- Funksjon Overbelastning : Funksjonsoverbelastning er å bruke et enkelt funksjonsnavn for å utføre forskjellige typer oppgaver. Polymorfisme er mye brukt for å implementere arv.
Eksempel : Anta at vi må skrive en funksjon for å legge til noen heltall, noen ganger er det 2 heltall, og noen ganger er det 3 heltall. Vi kan skrive tilleggsmetoden med samme navn med forskjellige parametere, den aktuelle metoden vil bli kalt i henhold til parametere.

Polymorfisme i C++
For å vite mer om polymorfisme, se denne artikkelen - Polymorfisme i C++
Arv
Evnen til en klasse til å utlede egenskaper og egenskaper fra en annen klasse kalles Arv . Arv er en av de viktigste egenskapene til objektorientert programmering.
- Underklasse : Klassen som arver egenskaper fra en annen klasse kalles underklasse eller avledet klasse.
- Super klasse : Klassen hvis egenskaper er arvet av en underklasse kalles Base Class eller Superclass.
- Gjenbrukbarhet : Arv støtter konseptet gjenbruk, dvs. når vi ønsker å opprette en ny klasse og det allerede er en klasse som inkluderer noe av koden vi ønsker, kan vi utlede vår nye klasse fra den eksisterende klassen. Ved å gjøre dette gjenbruker vi feltene og metodene til den eksisterende klassen.
Eksempel : Hund, katt, ku kan være avledet klasse av dyrebaseklasse.

Arv i C++
For å vite mer om arv, se denne artikkelen – Arv i C++
numpy linspace
Dynamisk binding
Ved dynamisk binding bestemmes koden som skal utføres som svar på funksjonskallet ved kjøretid. C++ har virtuelle funksjoner å støtte dette. Fordi dynamisk binding er fleksibel, unngår den ulempene med statisk binding, som koblet sammen funksjonskallet og definisjonen på byggetidspunktet.
Eksempel:
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; }> Produksjon
Printing the Base class Content Printing the Base class Content>
Som vi kan se, kalles print()-funksjonen til den overordnede klassen selv fra det avledede klasseobjektet. For å løse dette bruker vi virtuelle funksjoner.
Eksempel ovenfor med virtuell funksjon:
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> Produksjon
Printing the Base class Content Printing the Derived class Content>
Melding passerer
Objekter kommuniserer med hverandre ved å sende og motta informasjon. En melding for et objekt er en forespørsel om utførelse av en prosedyre og vil derfor påkalle en funksjon i det mottakende objektet som genererer de ønskede resultatene. Meldingsoverføring innebærer å spesifisere navnet på objektet, navnet på funksjonen og informasjonen som skal sendes.
Eksempel:
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>
relaterte artikler :
- Klasser og objekter
- Arv
- Tilgangsmodifikatorer
- Abstraksjon