所以我正在做的是创建一个位图移动的表单,当它们发生碰撞时,它们会“战斗”。位图保存为VBot并继承到子机器人中,以跟踪我构建指针数组的机器人。 VBot和BotContainer是.h和.cpp文件但是当我尝试在Form.h中创建私有BotContainer以跟踪机器人时它会给我错误消息
错误1错误C4368:无法将'VList'定义为托管'Prog3 :: Form1'的成员:不支持混合类型c:\ users \ duerst \ documents \ visual studio 2010 \ projects \ prog 3 \ prog 3 \ Form1.h 65 1 Prog 3
我该怎么做才能解决这个问题?
答案 0 :(得分: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;
}
};