我已经完成了C ++程序,我的基类即Shape
完成了获取数据的工作,而其他两个派生类Triangle
和Rectangle
计算了该区域。问题是我将该区域视为一些垃圾值。我已经完成了代码,请看一下并指导我。感谢
#include<iostream>
using namespace std;
class Shape{
protected: double b,h;
public:void get_data()
{
cout<<"Enter the height\n";
cin>>h;
cout<<"Enter the breadth\n";
cin>>b;
}
virtual void display_area(){}
};
class Rectangle:public Shape
{
public:void display_area(){
cout<<"\n\nArea of Rectangle:" << b*h;
}
};
class Triangle:public Shape
{
public:void display_area(){
cout<<"\n\nArea of Triangle:"<<0.5*b*h;
}
};
int main()
{
Shape s;
Triangle t;
Rectangle r;
Shape *ptr;
ptr=&s;
ptr->get_data();
ptr=&t;
ptr->display_area();
ptr=&r;
ptr->display_area();
return 0;
}
答案 0 :(得分:5)
您致电s.get_data()
,但未致电t.get_data
。因此,b, h
和t
中的r
将是垃圾。