基本クラスである継承プログラムとclass polygon
、派生クラス呼び出し長方形を作成しました。私のポリゴン基本クラスには、コンストラクタとデストラクタ、およびprint
面積と周囲の 2 つの関数があります。私の派生クラスには、コンストラクタとデストラクタ、およびprint
面積と周囲の 2 つの関数calc area
とcalc perimeter
関数があります。私が理解していないのは、現在このプログラムを実行したときに得られる出力です。私が望む出力はですarea = 45 perimeter = 28
。を使用するとこの出力が得られますが、を使用rect_1.calcarea()
したいですrect_1.printarea()
。
#include<iostream>
using namespace std;
class polygon
{
protected:
double area;
double perimeter;
public:
polygon(){}
virtual ~polygon(){ }
virtual double printarea() const { return area ;}
virtual double printperimeter() const { return perimeter ;}
};
class rectangle : public polygon
{
public:
rectangle(double , double ) ;
~rectangle(){ }
double calcarea() ;
double calcperimeter() ;
virtual double printarea() const { return area ;}
virtual double printperimeter() const { return perimeter ;}
private:
double length;
double width;
};
rectangle::rectangle(double l , double w)
{
length = l;
width = w;
}
double rectangle::calcarea()
{
area = length*width;
return area;
}
double rectangle::calcperimeter()
{
perimeter = length + width;
perimeter = perimeter * 2;
return perimeter;
}
void main ()
{
rectangle rect_1 (9.0, 5.0);
cout<<"The Area of Rect_1 is " <<rect_1.printarea() <<endl;
cout<<"The Perimeter of Rect_1 is " <<rect_1.printperimeter() <<endl;
system("pause");
}