기본 클래스 인 class polygon
의 상속 프로그램이며 파생 클래스 호출 사각형을 만들었습니다. 내 폴리곤 기본 클래스에서 나는 생성자와 소멸자와 두 개의 영역과 둘레에 대해 print
함수를 가지고있다. 파생 된 클래스에는 생성자와 소멸자가 있고 영역과 경계에 대해 두 개의 print
함수가 있고 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 –