这是我的代码:
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 []的大小未定义。

09-26 08:41