Square
クラスのサブクラスであるクラスShape
を持つプログラムを作成しています
しかし、サブクラスが親クラスから変数にアクセスしようとすると、プログラムがクラッシュします。
これが私のコードです:
class Shape2D
{
public:
string shape;
void setShape(string newShape);
string getShape();
string specialType;
void setSpecialType(string newSpecialType);
vector <int> shapeXCoordi;
void setshapeXCoordi(int newshapeXCoordi);
vector <int> shapeYCoordi;
void setshapeYCoordi(int newshapeYCoordi);
void toString();
virtual int computeArea()
{
return 0;
}
void displayArea();
};
テストの目的で、これcomputeArea()
にx座標のみを返すようにします。
class Square : public Shape2D
{
public:
int computeArea()
{
return shapeXCoordi[0];
}
};
int main()
{
if (aShape2D[0].getShape() == "Square")
{
Shape2D *pShape2D;
pShape2D = &aSquare;
cout << "Area: " << pShape2D -> computeArea() << endl;
}
}
いくつかのテストを行いました。に変更return shapeXCoordi[0];
するとreturn 123;
、問題なく動作します。
私も試しreturn shape;
ましたが、何も表示されませんが、今回はクラッシュしません。
だから、からSquareClass
アクセスしようとすると何かがおかしいと思いますshapeXCoordi[0]
ShapeClass
誰かがこの状況について私に教えてもらえますか?