以下代码中的三角形区域和矩形区域为0。需要一些提示,如何删除此问题。 另外,如果我能对此有所了解,那就太棒了!
#include <iostream.h>
#include <conio.h>
class shape
{
protected:
double x,y;
public:
void get_data(void);
virtual void display_area(void){ }
};
class triangle:public shape
{
protected:
double AoT;
public:
void display_area(void);
};
class rectangle:public shape
{
protected:
double AoR;
public:
void display_area(void);
};
void shape::get_data(void)
{
cout<<"Enter the vlaue of Base(x) and Height(y):"<<endl;
cin>>x>>y;
}
void triangle::display_area(void)
{
AoT=0.5*x*y;
cout<<"The area of Triangle in unit sq. is:"<<AoT<<endl;
}
void rectangle::display_area(void)
{
AoR=x*y;
cout<<"The area of Rectangle in Unit sq. is:"<<AoR<<endl;
}
main()
{
clrscr();
shape s, *p;
triangle t;
rectangle r;
s.get_data();
p=&t;
p->display_area();
p=&r;
p->display_area();
getch();
}
先谢谢了。需要快速固定这个,因为我,有点despo lol
答案 0 :(得分:1)
C:\Modules\MyModule
,s
和t
是完全不相关的对象。致电r
仅修改s.get_data()
和s.x
,s.y
和t.x
以及t.y
和r.x
。您需要分别为r.y
和shape::get_data
致电t
:
r