【问题标题】:Managed types Mixed types unsupported Visual C++托管类型 不支持的混合类型 Visual C++
【发布时间】:2012-10-25 03:01:27
【问题描述】:
所以我正在做的是创建一个位图移动的表单,当它们发生碰撞时,它们会“战斗”。位图保存为 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 程序 3
我能做些什么来解决这个问题?
【问题讨论】:
标签:
visual-studio-2010
visual-c++
【解决方案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;
}
};