试图在结构构造函数

时间:2017-01-28 17:20:21

标签: c++

这是我的结构,我收到了错误

错误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重载的as​​sinment运算符和复制构造函数时,会发生此错误。

2 个答案:

答案 0 :(得分:1)

  

我的猜测是AnimatedBitmap没有默认构造函数    - 一些程序员老兄7分钟前

这就是问题所在。

答案 1 :(得分:0)

你只剩下LandCell其编译器定义的默认构造函数,由于无法知道如何构造AnimatedBitmap(它本身没有默认构造函数),因此无法使用它

您必须自己为LandCell创建一个构造函数,并在考虑了一段时间之后,以您选择的任何方式将其编写为初始化sprite