Viniendo de un trasfondo de C# de un curso nocturno en una universidad local, en cierto modo comencé mi camino en C++. Tener mucho dolor acostumbrándose a la sintaxis. También estoy muy verde cuando se trata de técnicas de codificación.¿Cómo uso el valor Enum de una clase en otra parte del código?
Desde mi función WinMain
, deseo poder acceder a una variable que está utilizando una enumeración que declare en otra clase.
(inside core.h)
class Core
{
public:
enum GAME_MODE
{
INIT,
MENUS,
GAMEPLAY
};
GAME_MODE gameMode;
Core();
~Core();
...OtherFunctions();
};
(inside main.cpp)
Core core;
int WINAPI WinMain(...)
{
... startup code here...
core.gameMode = Core.GAME_MODE.INIT;
...etc...
}
Básicamente quiero establecer que el modo de juego al valor de enumeración de Init
o algo por el estilo de mi función WinMain
. También quiero poder leerlo de otras áreas.
consigo el error ...
expected primary-expression before '.' token
si trato de usar core.gameMode = Core::GAME_MODE.INIT;
, entonces me sale el mismo error.
No me preocupan las mejores prácticas, ya que estoy tratando de obtener la comprensión básica de pasar variables en C++ entre archivos. Me aseguraré de que las variables estén protegidas y cuidadosamente guardadas más adelante una vez que esté acostumbrado a la flexibilidad de la sintaxis.
Si no recuerdo mal, C# me permitió utilizar Enums de otras clases, y todo lo que tuve que hacer fue algo así como Core.ENUMNAME.ENUMVALUE
.
Espero que lo que quiero hacer sea claro: \ Como no tengo idea de la terminología correcta.
¡Dulce que funcionó! Gracias por eso :) Ahora puedo ver que hay tantos temas sobre Enums que necesitan tener nombres diferentes si están en el mismo espacio de nombres – ChiggenWingz
@ChiggenWingz: Buena observación: las enumeraciones fuertemente tipadas de C++ 0x ayudarán en a este respecto (y he actualizado la respuesta para discutir esto). –