variable una que publico publicas publica protegido privado privadas modificador miembros los ejemplo control clases clase acceso c++ class static private member

c++ - una - variables publicas y privadas



¿C++ Accede al miembro estático privado desde un método estático público? (1)

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;