这是我的结构,我收到了错误
错误C2280:' LandCell :: LandCell(无效)':尝试引用已删除的功能
注意:编译器已生成' LandCell :: LandCell'这里
struct LandCell
{
AnimatedBitmap sprite;
bool isColliding;
};
当我点击笔记时,它指向结构的右括号;
我已经读过如果您定义自己的移动/复制构造函数会发生这种情况,但在这种情况下我没有定义任何内容,而我的默认构造函数似乎已被删除。
编辑:当我创建一个landcell对象时会发生这个错误,在我的代码中,它是一个全局的,就像这个结构一样,所以我有
struct LandCell {
...
};
LandCell land1;
这是AnimatedBitmap类的顶部
class AnimatedBitmap
{
public:
AnimatedBitmap(int RMKey);
AnimatedBitmap(BitmapFile*);
~AnimatedBitmap();
顺便说一下,当我删除AnimatedBitmap重载的assinment运算符和复制构造函数时,会发生此错误。
答案 0 :(得分:1)
我的猜测是AnimatedBitmap没有默认构造函数 - 一些程序员老兄7分钟前
这就是问题所在。
答案 1 :(得分:0)
你只剩下LandCell
其编译器定义的默认构造函数,由于无法知道如何构造AnimatedBitmap
(它本身没有默认构造函数),因此无法使用它
您必须自己为LandCell
创建一个构造函数,并在考虑了一段时间之后,以您选择的任何方式将其编写为初始化sprite
。