使用している C++ クラスのプロジェクトに取り組んでいますが、いくつかのコンパイラ エラーがわかりません。私のファイルは、他の4つのクラスが継承する多態性関数 draw を持つ基本クラスのスプライトを記述することになっています。しかし、私はこれらのコンパイラの問題を理解できません!
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: 警告: 配列「スプライト配列 [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();
}