La palabra clave estática está relacionada generalmente con la vinculación interna, pero la palabra clave estática utilizada dentro de una clase tiene una vinculación externa ¿no? Las variables m, n a continuación son accesibles fuera del archivo de clase.palabra clave estática dentro de una clase y fuera de ella
class c {
int i;
int j;
static int m;
static int n;
public:
void zap();
static void clear();
};
'static' miembros pertenecen a la clase * *; para las variables, son accesibles sin un objeto y se comparten entre instancias, p. 'struct Foo {static void * bar; vacío estático * fu(); } ', por lo que' Foo :: bar' y 'Foo :: fu' son legales. – oldrinb
No es estrictamente requerido por el estándar, pero puede (o no puede) ayudar a pensar en miembros estáticos como estáticos en el sentido de una dirección fija establecida en tiempo de compilación, mientras que los datos de miembros no estáticos pueden colocarse en la pila o heap en varias direcciones determinadas por el tiempo de ejecución. Los miembros 'static' son básicamente como variables globales, excepto que su identificador cae dentro del alcance de la clase que los declara. –