我正在为我正在学习的 c++ 类开发一个项目,但我无法找出一些编译器错误。我的文件应该编写一个基类 sprite,它具有多态函数 draw,其他 4 个类继承自该函数。但是我无法弄清楚这些编译器问题!
main.cpp:在函数“int main()”中:
main.cpp:72:47:警告:扩展初始化列表仅适用于 -std=c++0x 或 -std=gnu++0x [默认启用]
main.cpp:72:47:错误:从初始化列表分配给数组
main.cpp:73:23: 错误:“)”标记之前的预期主表达式
main.cpp:74:21: 错误:“)”标记之前的预期主表达式
main.cpp:75:22: 错误:“)”标记之前的预期主表达式
main.cpp:76:20: 错误:“)”标记之前的预期主表达式
main.cpp:81:13: 警告:删除数组“Sprite array [4]”[默认启用]
这是我的代码!
#include "drawing.h"
class Sprite
{
friend class Shadow;
friend class Speedy;
friend class Bashful;
friend class Pokey;
private:
int row;
int col;
public:
int getCol()
{
return col;
}
int getRow()
{
return row;
}
void setPosition(int x, int y)
{
row = x;
col = y;
}
virtual void draw()
{
drawErrorMessage(row, col);
}
};
class Shadow: public Sprite
{
public:
virtual void draw()
{
drawShadow(row,col);
}
};
class Speedy: public Sprite
{
public:
virtual void draw()
{
drawSpeedy(row,col);
}
};
class Bashful: public Sprite
{
public:
virtual void draw()
{
drawBashful(row,col);
}
};
class Pokey: public Sprite
{
public:
virtual void draw()
{
drawPokey(row,col);
}
};
int main()
{
Sprite array[4];
beginDrawing();
array = {Shadow(),Speedy(),Bashful(),Pokey()};
((Shadow) (array[0]*)).setPosition(5,10);
((Speedy)(array[1]*)).setPosition(5,44);
((Bashful)(array[2]*)).setPosition(22,44);
((Pokey)(array[3]*)).setPosition(22,10);
array[0].draw();
array[1].draw();
array[2].draw();
array[3].draw();
delete [] array;
endDrawing();
}