Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los nombres utilizados con el operador binario de resolución de ámbito (::) se denominan “nombres calificados.” El nombre especificado después de que el operador binario de resolución de ámbito debe ser un miembro de la clase especificada a la izquierda del operador o un miembro de la clase base.
Nombres especificados después de que el operador miembro-selección (. o – >) debe ser miembros de tipo de clase del objeto especificado a la izquierda del operador o miembros de su clase base.Los nombres especificados en el lado derecho del operador miembro-selección (– >) también pueden ser objetos de otro tipo de clase, siempre que el lado izquierdo de – > es un objeto de clase y que la clase define un operador sobrecargado miembro-selección (– >) que se evalúa como puntero a otro tipo de clase.(Esta eliminación se explica con más detalle en miembro de clase Access.)
Las búsquedas del compilador para los nombres en el orden siguiente, deteniéndose cuando se encuentra el nombre:
La actual bloquea ámbito si el nombre se utiliza dentro de una función; si no, ámbito global.
Out con cada ámbito de bloque que agrega, incluido el ámbito fuera de la función (que incluye argumentos de función).
Si el nombre se utiliza dentro de una función miembro, el ámbito de clase se busca el nombre.
Las clases base de la clase se busca el nombre.
Se buscan el ámbito de la clase anidada que agrega (si existe) y sus bases.La búsqueda continúa hasta que se busque el ámbito fuera de la clase envolvente.
se busca el ámbito global.
Sin embargo, puede crear modificaciones a esta búsqueda ordenada como sigue:
Los nombres precedidos por :: fuerzan la búsqueda para empezar en el ámbito global.
Los nombres precedidos por clase, struct, y las palabras clave de union convierten el compilador para buscar sólo para clase, struct, o nombres de union .
Los nombres del lado izquierdo del operador de resolución de ámbito (::) pueden ser sólo clase, struct, espacio de nombres, o nombres de union .
Si el nombre hace referencia a un miembro no estático pero se utiliza en una función miembro static, se genera un mensaje de error.De igual forma, si el nombre hace referencia a cualquier miembro no static en una clase envolvente, se genera un mensaje de error porque las clases incluidas no tienen punteros de this de la agregar-clase.