这是我的代码: 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秒)=== |
有人可以解释为什么会这样,以及如何解决它
答案 0 :(得分:1)
尝试替换它:
int x[], y[];
由:
int * x;
int * y;
它会起作用。您的解决方案不起作用,因为当您为对象分配内存空间时,计算机必须确切地知道应该分配多大的空间。并且在创建对象时未定义x []和y []的大小。
答案 1 :(得分:0)
猜猜你是在松散模式下编译而且gcc首先会和你一起玩扩展技巧。如果你将-pedantic添加到编译中,它会开始披露它将x []视为应该被拒绝的0大小数组。
首先修复该部分,然后仍有问题再次询问。