2012-10-25 100 views
1

所以我在做什么是创建一个位图移动和当他们碰撞他们“战斗”的形式。位图保存一个VBot并继承到子机器人,以跟踪机器人构建的指针数组。 VBot和BotContainer是.h和.cpp文件,但是当我尝试在Form.h中创建一个私有BotContainer以跟踪机器人时,它会给我提供错误消息托管类型混合类型不受支持Visual C++

错误1错误C4368:无法定义'VList'作为托管'Prog3 :: Form1'的成员:混合类型不支持c:\ users \ duerst \ documents \ visual studio 2010 \ projects \ prog 3 \ prog 3 \ Form1.h 65 1 Prog 3

什么我能解决这个问题吗?

回答

1

你正在做的事情是这样的:

class BotContainer 
{ 
    ... 
}; 

public ref class Form1 
{ 
private: 
    BotContainer VList; 

    ... 
}; 

这是非法的,因为管理类型不能有非托管类型(反之亦然)的成员。你需要使用一个指针到BotContainer,您在构造函数实例化和析构函数中删除:

public ref class Form1 
{ 
private: 
    BotContainer* VList; 

public: 
    Form1() 
    { 
     VList = new BotContainer(); 
     ... 
    } 

    ~Form1() 
    { 
     delete VList; 
    } 
}; 
相关问题