c++ c ++ كيفية الحصول على نفس الأعضاء الأعضاء في أسماء إنوم مختلفة دون الحصول على إرور: ريدفينتيون؛ كان التعريف السابق "العداد"


1 Answers

إذا كان لديك إمكانية استخدام C ++ 11 أود أن أوصي لاستخدام ميزة الطبقة إنوم لتجنب الاصطدامات:

enum class GameObjectType
{
     NINJA_PLAYER

};
enum class GameObjectTypeLocation
{
    NONE,
    MASSAGE_ALL,  //this is for ComponentMadiator
    NINJA_PLAYER


};

تحرير: إذا لم يكن لديك هذه القدرة، ثم سوف تحتاج إلى استخدام اثنين من مساحات أسماء مختلفة لكل إنوم.

c++ enums

لدي ملف التكوين الذي أضمه في كل ملفاتي هناك إنومز مختلفة ولكن داخل كل إنوم هناك نفس العناصر عنصر على سبيل المثال: config.h

enum GameObjectType
{
     NINJA_PLAYER

};
enum GameObjectTypeLocation
{
    NONE,
    MASSAGE_ALL,  //this is for ComponentMadiator
    NINJA_PLAYER


};

ولكن عندما أحاول تجميع المشروع مع استدعاء البوم مع اسم صحيح إنوم

m_pNinjaPlayer = (NinjaPlayer*)GameFactory::Instance().getGameObj(GameObjectType::NINJA_PLAYER);
    ComponentMadiator::Instance().Register(GameObjectTypeLocation::NINJA_PLAYER,m_pNinjaPlayer);

أواجه خطأ في التجميع:

error C2365: 'NINJA_PLAYER' : redefinition; previous definition was 'enumerator' (..\Classes\GameFactory.cpp)
2>          d:\dev\cpp\2d\cocos2d-x-3.0\cocos2d-x-3.0\projects\lettersfun\classes\config.h(22) : see declaration of 'NINJA_PLAYER'

كيف يمكنني الاحتفاظ في config.h عدة إنومز مع أسماء مختلفة ولكن مع نفس العناصر أسماء؟



Related


Tags

c++   enums