これは私のコードです:
/*
create an abstract class shape and derived classes rectangle and circle from class shape, implement abstract method of class shape in rectangle and circle. Class circle contains radius as data members rectangle class contains length and breadth.
*/
class shape
{
virtual void displayArea() = 0;
virtual void get_radius(double r) = 0;
virtual void get_length(double a) = 0;
virtual void get_breadth(double b) = 0;
};
class rectangle: public shape
{
protected:
double length;
double breadth;
public:
virtual void get_length(double a)
{
length = a;
}
virtual void get_breadth(double b)
{
breadth = b;
}
virtual void get_radius(double r)
{
cout << endl;
}
virtual void displayArea()
{
cout << "Area of RECTANGLE = " << length*breadth << endl;
}
};
class circle: public shape
{
protected:
double radius;
public:
virtual void get_length(double a)
{
cout << endl;
}
virtual void get_breadth(double b)
{
cout << endl;
}
virtual void get_radius(double r)
{
radius = r;
}
virtual void displayArea()
{
cout << "Area of circle = " << 3.14*radius*radius << endl;
}
};
int main()
{
shape* shapes;
double l, r, b;
rectangle R;
circle C;
cout << "Enter the length and breadth for rectangle\n" << endl;
cin >> l >> b;
cout << "\nEnter the radius of circle\n " << endl;
cin >> r;
R.get_length(l);
R.get_breadth(b);
C.get_radius(r);
shapes[0] = R;
shapes[1] = C;
shapes[0].displayArea();
shapes[1].displayArea();
system("pause");
return 0;
}
コンパイルエラーは発生していませんが、実行時にこれが発生します: 長方形の長さと幅を入力してください
3 3
円の半径を入力してください
3
その後、しばらく一時停止してから終了します。私は混乱しています。ここで何が間違っていて、どうすれば修正できますか? また、コードにはどのような問題がありますか?