0

私は C++ プログラムをShape作成しました。ここで、基本クラスは data を取得し、他の 2 つの派生クラスは areaTriangleRectangle 計算します。問題は、領域をガベージ値として取得していることです。私はコードを作成しました。それを見て、私を導いてください。ありがとう

 #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;
 }
4

1 に答える 1

5

を呼び出しs.get_data()ましたが、ではありませんt.get_data。したがってb, h、 と でガベージにtなりrます。

于 2012-08-09T17:47:29.623 に答える