#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:
- 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的类型?
}
- Solamente estados de equilibrio y Bal en clase, no declaradas para el dinero, tenemos que mirar para encerrar dinero alcance.
Money balance()
Money bal;
- 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;
- Desde el tipo de declaración de tipo bal es doble, en lugar de la cadena más externa.
resumen:
- 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.
- 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.