C ++形状区域:获取区域0

时间:2015-10-19 14:13:22

标签: c++

以下代码中的三角形区域和矩形区域为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

1 个答案:

答案 0 :(得分:1)

C:\Modules\MyModulest是完全不相关的对象。致电r仅修改s.get_data()s.xs.yt.x以及t.yr.x。您需要分别为r.yshape::get_data致电t

r