繼承程序class polygon
這是基類,我創建了派生類調用矩形。在我的多邊形基類中,我有一個構造函數和析構函數,還有兩個用於面積和周長的函數。在我的派生類中,我有一個構造函數和析構函數,以及兩個用於面積和周長的函數,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");
}
你會得到什麼輸出? –
你得到了什麼輸出? –
Aside:http://www.stroustrup.com/bs_faq2.html#void-main –