C ++ / Cli循环包含

时间:2014-01-06 21:28:57

标签: .net c++-cli circular-reference

大家好我有两个类都需要另外一个包括在内,我试图在Ah文件中包含B类标题,在Bh文件中包含A类标题,但由于循环包含,我得到了错误研究我已经找到了一个被称为前向声明的解决方案,但对我来说不起作用,这是我的实际情况:

// Game.h

#ifndef _GAME_H_
#define _GAME_H_

#ifndef _GRAPHICSDEVICE_H_
#include "GraphicsDevice.h"
#endif

using namespace BSGameFramework::Graphics;

namespace BSGameFramework
{
    public ref class Game
    {
        public:

            Game();
            virtual ~Game();

            property GraphicsDevice^ Device
            {
                GraphicsDevice^ get()
                {
                    return device_;
                }
            }

// Other code here

        private:

            GraphicsDevice^ device_;
    }
}

#endif

这是GraphicsDevice类:

// GraphicsDevice.h

#ifndef _GRAPHICSDEVICE_H_
#define _GRAPHICSDEVICE_H_

// forward declaration
ref class Game; // <-- this is giving me error C2872: 'Game' : ambiguous symbol

using namespace BSGameFramework;

namespace BSGameFramework
{
    namespace Graphics
    {
        public ref class GraphicsDevice
        {
            public:

                GraphicsDevice(); // I need to pass my Game class to the constructor
                virtual ~GraphicsDevice();

// Here other code

         }    
     }
}
是的,有人能帮帮我吗?我变得疯狂xD

解决

我已经解决了替换ref class Game的问题; with namespace BSGameFramework {ref class Game; }

1 个答案:

答案 0 :(得分:0)

<强>解决

我已经解决了替换ref class Game的问题; with namespace BSGameFramework {ref class Game; }