Sådan implementeres denne markør i C ++?



Dette er en markør, der peger mod den, der ringer op. I dette indlæg dykker vi dybere ned i begrebet med denne markør i C ++.

Under programmeringen er du muligvis stødt på dette 'nøgleord. 'Dette' er en markør, der peger mod de kaldende objekter. I dette indlæg dykker vi dybere ned i begrebet dette markør i C ++

Følgende punkter vil blive dækket i denne artikel,





Lad os starte med denne artikel om denne pointer i C ++

Denne markør i C ++

Markører til objekter

Folk har tendens til at holde sig væk fra pekere, da deres arbejde lyder lidt forvirrende. I dette indlæg vil vi forstå begrebet markør på den enkleste måde. Markører bruges til at indeholde adressen på en bestemt variabel. De bruges til at henvise til variablen, hvis adresse den lagrer. Et vigtigt punkt at bemærke her er, at en markør kun kan gemme adressen på en variabel, hvis type matcher markørens type. Med andre ord kan en int-type-markør kun indeholde adressen på en int-type-variabel.



Hvad skal markøren være, der bruges til at gemme adressen på et objekt? For at finde et svar på dette spørgsmål skal vi forstå, hvad der er typen af ​​et bestemt objekt? Int, char, flyde? Nej, et objekt er af typen klasse. Med andre ord er typen af ​​et objekt den klasse, det tilhører. Som en bestemt klasse er en brugerdefineret datatype, og et objekt af denne klasse hører til den type.

Indtil nu har du muligvis oprettet henvisninger til referencevariabler for primitive datatyper. Lad os se, hvordan vi kan bruge pegepinde, der kan henvise til et bestemt objekt.

Fortsætter med eksempelkode for pointer til objekter



Syntaks

klassenavn * pointernavn

#include using namespace std class Car {public: int Number_of_wheels int Number_of_passengers void getinfo (int x, int y) {Number_of_wheels = x Number_of_passengers = y} void showinfo () {cout<<'Number of Wheels = '< Produktion 

Antal hjul = 4

Antal passagerer = 5

Antal hjul = 6

c ++ Fibre rekursiv

Antal passagerer = 8

Sådan kan vi bruge en markør til at henvise et objekt.

Bemærk det. operatør bruges med navnet på objektet, og -> operatør bruges, mens man får adgang til metoden via en markør.

Fortsætter med denne artikel om Denne pointer i C ++

Denne markør

Hvis du er med python, er du måske stødt på ordet 'selv'. Funktionaliteterne i 'dette' og 'selvet' ligner hinanden. 'Dette' er en parameter, der sendes til alle ikke-statiske metoder i en klasse, som vi ikke kan se, men kan bruges i alle ikke-statiske eller instansmetoder i en klasse. 'Denne' markør sendes til en ikke-statisk medlemsfunktion, så snart den kaldes. Det er et implicit argument for alle ikke-statiske medlemsfunktioner i en klasse.

Fortsætter med prøvekode til denne markør

# inkludere brug af namespace std klasse Bil {privat: int Antal_af_hjul int Antal_af_passagerer offentligt: ​​ugyldigt getinfo (int x, int y) {dette-> Antal_af_hjul = x dette-> Antal_af_passagerere = y} ugyldigt showinfo () {cout<<'Number of Wheels = '< Produktion 

Antal hjul = 4

Antal passagerer = 5

Adressen på det aktuelle objekt er = 0x7ffdbac81740

Antal hjul = 6

Antal passagerer = 8

Adressen på det aktuelle objekt er = 0x7ffdbac81748

Ovenstående program giver os en kort forståelse af 'dette' nøgleord. 'Dette' nøgleord er nyttigt, når variabelnavnet kolliderer, eller når der er involveret flere objekter i en metode.

indstilling af Java klassesti i Linux

Markører til afledt klasse

Markører kan ikke kun bruges til at henvise til basisklassen, men de kan også bruges til at pege på et afledt klasseobjekt. For eksempel, hvis klasse Car arver fra klasse Vehicles, kan en markør af typen Vehicles også bruges til at pege mod et objekt af typen Car.

Køretøjer * ptr Køretøjer køretøjer Bil bil ptr = & køretøjer ptr = & bil

Den eneste fangst her er, at hvis vi bruger en basisklassemarkør til at pege mod det afledte klasseobjekt, vil vi kun få adgang til baseklassemetoder, som arves af det afledte klasseobjekt. Vi kan ikke få adgang til medlemmerne af den afledte klasse ved hjælp af baseklassemarkøren.

Hvis et medlem af klassen Car har samme navn som et af medlemmerne af klasse Vehicles, vil markøren i så fald få adgang til baseklassemedlemmet.

Således er vi nået til slutningen af ​​denne artikel om 'Denne pointer i C ++'. Hvis du ønsker at lære mere, skal du tjekke af Edureka, et betroet online læringsfirma. Edurekas Java J2EE- og SOA-uddannelses- og certificeringskursus er designet til at træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-rammer som Hibernate & Spring.

Har du et spørgsmål til os? Nævn det i kommentarsektionen på denne blog, og vi vender tilbage til dig hurtigst muligt.