En el mundo de C + +, productores y programadores de bibliotecas cliente utilizan las bibliotecas para armar aplicaciones que son a menudo las bibliotecas más grandes. Las bibliotecas consisten en clases . A C + + clase tiene características de control de acceso que definen límites estrictos entre el productor de clase y el programador cliente . Estos son necesarios para mantener el programador cliente entre en contacto con las secciones críticas de código y para que los productores de la biblioteca para hacer cambios internos sin previo aviso. Cosas que necesitará
libro de C + + de programación
Mostrar más instrucciones
1
Entender los especificadores de acceso proporcionada por C + + que determinan los límites de clase . Éstos están indicados por las palabras clave explícitas " público", " privado " y " protegida" . Al identificar una función miembro de una de estas palabras clave , puede controlar el nivel de acceso de esa función miembro.
2
Usar la palabra clave "pública" para hacer una definición disponible para cualquier persona , incluidos los programadores cliente.
Página 3
Aplicar la palabra "privado" cuando usted no quiere que nadie aparte de sí mismo para acceder a una definición de clase. Definiciones privadas solo pueden ser accedidos por otras funciones miembro que pertenecen a la clase en cuestión . Piense en "privado" como un firewall que protege la implementación interna de una definición de un programador cliente .
4
Declarar una definición de " protegido " cuando sólo desea heredar clases para acceder a esa definición. La herencia de clases o clases que se derivan funcionalidad de una clase no puede acceder a las definiciones particulares , pero pueden acceder a las definiciones marcadas como protegidas .
5
Consulte el ejemplo siguiente para obtener una mejor comprensión de los pasos 2 a 4 y control de acceso :
clase CFile {
público :
int abierto (const char * filename) ;
privada:
FileExists bool () const ;
protegida:
PixelCount int (); }
;
//función " FileExists " privadas puede ser utilizado por las funciones miembro en la definición
int CFile :: Open (const char * filename) {
si ( verdaderos == CFile :: FileExists () )
tirar ...
}
//clase heredera puede utilizar la función de protección " PixelCount " de la clase base
clase CImageFile : CFile pública {
público :
SomeFunc void () { int x =
CFile :: PixelCount (); }
;
} ;
//ejecución area int main () {
archivo CFile ;
File.open ( referral.txt ) ;
if ( true == File.Exists ( ) ) //compilador error
int x = file.PixelCount //compilador error
}