*   >> Læs Uddannelse artikler >> science >> programming

Adgang beregnere i C ++ Classes

num2; offentligheden: int add () {num1; num2 = 3; int sum = num1 + num2; returnere sum; }}; int main () {Lommeregner obj; obj.num1 = 2; int resultat = obj.add (); cout returnere 0; } Den anden linje i de vigtigste funktion er forkert, fordi på denne linje, de vigtigste forsøger at få adgang (brug som identifier) ​​den private medlem, num1. Den beskyttede Access Specifier Hvis et medlem af en klasse er offentlig, kan det tilgås af en ekstern funktion, herunder en afledt klasse.

Hvis et medlem af en klasse er privat, kan det ikke tilgås af en ekstern funktion; selv en afledt klasse kan ikke få adgang til det. Spørgsmålet er, bør en afledt klasse ikke rigtig kunne få adgang til en privat medlem af sin base klasse (da den afledte klasse og base klasse er relateret)? Nå, for at løse dette problem, du har en anden adgang til anvisning kaldes, beskyttet. Hvis et medlem af en klasse er beskyttet, kan det tilgås af en afledt klasse, men det kan ikke tilgås af en ekstern funktion. Det kan også tilgås af medlemmerne inden for klassen.

Følgende kode viser, hvordan en afledt klasse kan få adgang til et beskyttet medlem af en base klasse: #include bruge namespace std; klasse Lommeregner {beskyttet: int num1; int num2; }; klasse ChildCalculator: offentlig Lommeregner {public: int add () {num1 = 2; num2 = 3; int sum = num1 + num2; returnere sum; }}; int main () {ChildCalculator myChildObj; int resultat = myChildObj.add (); cout returnere 0; } Basen klasse har kun to ejendomme og ingen metode; disse egenskaber er beskyttede. Den afledte klasse har en fremgangsmåde og ingen fast ejendom.

Inde i afledte klasse, er de beskyttede egenskaber basen klassen anvendes som identifikatorer. Generelt, når en afledt klasse bruger et medlem af en base klasse, det er en fremgangsmåde af den afledte klasse, der bruger elementet, som i dette eksempel. Ovenstående kode er OK. Følgende kode vil ikke kompilere, fordi linje 2 i main () funktion forsøger at få adgang til et beskyttet medlem af basen klassen: #include bruge namespace std; klasse Lommeregner {beskyttet: int num1; int num2; }; klasse ChildCalculator: offentlig Lommeregner {public: int add () {num1; num2 = 3; int sum = num1 + num2; returnere sum; }}; int main () {Lommeregner obj; obj.

num1 = 2; ChildCalculator myChildObj; int resultat = myChildObj.add (); cout returnere 0; } En ekstern funktion kan ikke få adgang til et beskyttet medlem af en klasse (base klasse); dog kan en afledt klasse metode adgang til en beskyttet medlem af bas

Page   <<  [1] [2] [3] [4] >>
Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.