我正在制作一个程序,其中我有一个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
任何人都可以在这种情况下启发我吗?