c++ - una - variables publicas y privadas
¿C++ Accede al miembro estático privado desde un método estático público? (1)
Esta pregunta ya tiene una respuesta aquí:
Digamos que tengo un archivo .hpp que contiene una clase simple con un método estático público y una variable / miembro estático privado. Esta es una clase de ejemplo:
class MyClass
{
public:
static int DoSomethingWithTheVar()
{
TheVar = 10;
return TheVar;
}
private:
static int TheVar;
}
Y cuando llamo:
int Result = MyClass::DoSomethingWithTheVar();
Yo esperaría que "Resultado" sea igual a 10;
En su lugar obtengo (en la línea 10):
undefined reference to `MyClass::TheVar''
La línea 10 es "TheVar = 10;" Del método.
Mi pregunta es si es posible acceder a un miembro estático privado (TheVar) desde un método estático (DoSomethingWithTheVar)?
¡La respuesta a tu pregunta es sí! Acaba de fallar para definir el miembro estático TheVar
:
int MyClass::TheVar = 0;
En un archivo cpp.
Es respetar la regla de una definición .
Ejemplo:
// Myclass.h
class MyClass
{
public:
static int DoSomethingWithTheVar()
{
TheVar = 10;
return TheVar;
}
private:
static int TheVar;
};
// Myclass.cpp
#include "Myclass.h"
int MyClass::TheVar = 0;