In de wereld van C + + , producenten bibliotheek en client programmeurs gebruiken de bibliotheken om toepassingen die vaak groter zijn bibliotheken samen te stellen . Bibliotheken bestaan van klassen . Een C + + klasse heeft toegangscontrole functies die strikte grenzen tussen de klas producent en klant programmeurs te definiëren . Deze zijn noodzakelijk om client programmeurs houden van het aanraken van kritieke delen van de code en in staat te stellen bibliotheek producenten om interne veranderingen aan te brengen zonder voorafgaande kennisgeving . Wat je nodig hebt boek over C + + programmeren Toon Meer Aanwijzingen 1 Begrijp de toegang bestekschrijvers door C + + dat de klassengrenzen bepalen . Deze worden aangegeven door de expliciete sleutelwoorden "public ", " prive" en " beschermde ". Door het identificeren van een lid functie met een van deze zoekwoorden , bepaalt u het toegangsniveau van die lid functie . Kopen van 2 Gebruik de "openbare " keyword om een definitie voor iedereen beschikbaar te maken , met inbegrip van client programmeurs . < br > 3 Breng de " private " keyword als je niet wilt dat iemand anders dan jezelf om toegang te krijgen tot een klasse definitie . Prive definities kan alleen worden geopend door andere lid functies die behoren tot de klasse in kwestie . Denk aan "prive " als een firewall die de interne implementatie van een definitie van een cliënt programmeur beschermt . 4 Verklaar een definitie 'beschermd' als u wilt dat alleen erven klassen voor toegang tot die definitie . Erven klassen of klassen die de functionaliteit ontlenen aan een klasse geen toegang tot prive- definities , maar ze toegang definities gemarkeerd als beschermd . 5 Zie het volgende voorbeeld om een beter begrip van Steps 2 te winnen 4 en toegangscontrole : class CFile { publiek : int Open ( const char * filename ) ; prive : bool FileExists ( ) const ; beschermde : int PixelCount ( ) ; } ; //private function " FileExists " kan worden gebruikt door lid functies in definitie int CFile :: Open ( const char * filename ) { indien (true == CFile :: FileExists ( ) ) op te gooien ... } //erven klasse kan gebruiken beveiligde functie " PixelCount " van de base class klasse CImageFile : openbare CFile { publiek : leegte SomeFunc ( ) { int x = CFile :: PixelCount ( ) ; }; } ; //executie gebied int main ( ) { CFile bestand ; File.open ( referral.txt ) ; if ( true == file.exists ( ) ) //compiler error int x = file.PixelCount ; //compiler error }
|