C ++: nombres de los miembros de clase en las operaciones de búsqueda


#include <iostream>
#include <string>
using namespace std;

typedef double Money;
string bal;
class Acount
{
public:
    Money balance()
    {
        return bal;//bal的类型?
    }

private:
    Money bal;
};

int main()
{
    return 0;
}

Pregunta: A modo de ejemplo, el tipo de lo bal?
Respuesta:

  1. Cuando se define una clase, el compilador para compilar una declaración de sus miembros hasta que todo visibles después de que el cuerpo de la función clase compilada. Debido a que el cuerpo de la bal función, por lo que mira el comunicado;
Money balance()
    {
        return bal;//bal的类型?
    }
  1. Solamente estados de equilibrio y Bal en clase, no declaradas para el dinero, tenemos que mirar para encerrar dinero alcance.
Money balance()
Money bal;
  1. El dinero encontrado en el ámbito exterior realidad doble.
typedef double Money;

  Por lo tanto, en la declaración de clase similar a:

double balance()
double bal;
  1. Desde el tipo de declaración de tipo bal es doble, en lugar de la cadena más externa.

resumen:

  1. Cuando se define una clase, el compilador para compilar una declaración de sus miembros hasta que todo visibles después de que el cuerpo de la función clase compilada.
  2. procedimiento de búsqueda de nombre general: por primera vez en el bloque en el que el nombre y el uso previo del nombre de código de declaración de búsqueda, y si no lo encuentra, el alcance sigue a mirar a la capa externa; si el alcance más externa no encontró una declaración de nombre coincidente, el error del programa.
Publicado 77 artículos originales · ganado elogios 25 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/qq_34801642/article/details/104861173
Recomendado
Clasificación