1

所以我正在做的是创建一个位图移动的表单,当它们发生碰撞时,它们会“战斗”。位图保存为 VBot 并继承到子机器人中,为了跟踪机器人,我构建了一个指针数组。VBot 和 BotContainer 是 .h 和 .cpp 文件,但是当我尝试在 Form.h 中创建私有 BotContainer 以跟踪 Bot 时,它给了我错误消息

错误 1 ​​错误 C4368:无法将“VList”定义为托管“Prog3::Form1”的成员:不支持混合类型 c:\users\duerst\documents\visual studio 2010\projects\prog 3\prog 3\Form1。 h 65 1 程序 3

我能做些什么来解决这个问题?

4

1 回答 1

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;
    }
};
于 2012-10-25T03:39:23.643 回答