我正在尝试使用虚函数来计算矩形和三角形的面积,如下所示:-
#include<iostream>
using namespace std;
class Shape{
public:
int width;
int height;
void get(){
cin>>width;
cin>>height;
}
virtual void area(){
cout<<"Calculates area";
}
};
class Triangle:public Shape{
void area(){
int a = height*width/2;
cout<<a<<endl;
}
};
class Rectangle:public Shape{
void area(){
int a = height*width;
cout<<a<<endl;
}
};
int main(){
Shape shapeObj;
shapeObj.get();
Shape *ptr;
Triangle trObj;
Rectangle rectObj;
ptr=&trObj;
ptr->area();
ptr=&rectObj;
ptr->area();
}
但是我的程序将两个形状的面积都返回0。我认为在Triangle和Rectangle类中未分配width和height的值。有人可以告诉我我要去哪里哪里吗?
问题是宽度和高度分配给了shapeObj
变量