这是我的代码:
CPP:
#include "../include/Enemy.h"
Enemy::Enemy(int X[], int Y[], int Type )
{
x=X;
y=Y;
type=Type;
}
Enemy::~Enemy()
{
//dtor
}
标头:
#ifndef ENEMY_H
#define ENEMY_H
class Enemy
{
public:
Enemy(int X[], int Y[], int Type );
virtual ~Enemy();
protected:
private:
int type;
int x[], y[];
};
#endif // ENEMY_H
我收到以下错误:
||在构造函数'Enemy :: Enemy(int *,int *,int)':|中| 6 |错误:
将“ int *”分配给“ int [0]” |中的类型不兼容| 7 |错误:
将“ int *”分配给“ int [0]” |中的类型不兼容|| ===构建
已完成:2个错误,0个警告(0分钟0秒)=== |
有人可以解释这是为什么以及如何补救
最佳答案
尝试替换为:
int x[], y[];
通过:
int * x;
int * y;
它会工作。您的解决方案不起作用,因为当您为对象分配内存空间时,计算机必须确切知道应该分配多少空间。创建对象时,x []和y []的大小未定义。