生活随笔
收集整理的這篇文章主要介紹了
7-28作业直接刷一下
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.建立一個形狀類Shape作為基類,派生出圓類Circle和矩形類Rectangle,求出面積并獲取相關(guān)信息。具體要求如下:
(1)形狀類Shape
(a)保護數(shù)據(jù)成員
double x, y:對于不同的形狀,x和y表示不同的含義,如對于圓,x和y均表示圓的半徑,而對于矩形,x表示矩形的長,y表示矩形的寬。訪問權(quán)限定義為保護類型是為了能被繼承下去,以便派生類能直接訪問x和y。
(b)公有成員函數(shù)
構(gòu)造函數(shù)Shape(double _x, double _y):用_x、_y分別初始化x、y。
double GetArea():求面積,在此返回0.0。
(2)圓類Circle,從Shape公有派生
(a)公有成員函數(shù)
Circle(double r):構(gòu)造函數(shù),并用r構(gòu)造基類的x和y。
double GetArea():求圓的面積。
double GetRadius():獲取圓的半徑。
(3)矩形類Rectangle,從Shape公有派生
(a)公有成員函數(shù)
Rectangle(double l, double w) :構(gòu)造函數(shù),并用l和w構(gòu)造基類的x和y。
double GetArea():求矩形的面積。
double GetLength():獲取矩形的長。
double GetWidth():獲取矩形的寬。
(4)在主函數(shù)中對派生類進行測試。注意,在程序的開頭定義符號常量PI的值為3.14。測試的輸出結(jié)果如下:
circle : r = 1, area = 3.14
?? ? rectangle : length = 3, width = 4, area = 12
#include <iostream>
#include <windows.h>using namespace std;
#define Pi 3.14//形狀類Shape作為基類
//(a)保護數(shù)據(jù)成員
//double x, y:對于不同的形狀,x和y表示不同的含義,如
//對于圓,x和y均表示圓的半徑,而
//對于矩形,x表示矩形的長,y表示矩形的寬。訪問權(quán)限定義為保護類型是為了能被繼承下去,以便派生類能直接訪問x和y。
//(b)公有成員函數(shù)
//構(gòu)造函數(shù)7:Shape(double _x, double _y)用_x、_y分別初始化x、y。
//double GetArea():求面積,在此返回0.0。
class Shape
{
protected:double x;double y;
public:Shape(double _x, double _y);double GetArea();
};
Shape::Shape(double _x, double _y)
{x = _x;y = _y;
}
double Shape::GetArea()
{return 0.0;
}
/*
(2)圓類Circle,從Shape公有派生
(a)公有成員函數(shù)
Circle(double r):構(gòu)造函數(shù),并用r構(gòu)造基類的x和y。
double GetArea():求圓的面積。
double GetRadius():獲取圓的半徑。
*/class Circle :public Shape
{
public:Circle(double r);//構(gòu)造函數(shù),并用r構(gòu)造基類的x和y。double GetArea();//求圓的面積。double GetRadius();//獲取圓的半徑。
};
Circle::Circle(double r) :Shape(r,r)
{cout << "Circle constuctor ok!~" << endl;
}double Circle::GetArea()
{double result;result = Pi * x * y;return result;
}double Circle::GetRadius()
{return x;
}/*
(3)矩形類Rectangle,從Shape公有派生
(a)公有成員函數(shù)Rectangle(double l, double w) :構(gòu)造函數(shù),并用l和w構(gòu)造基類的x和y。double GetArea():求矩形的面積。double GetLength():獲取矩形的長。double GetWidth():獲取矩形的寬。
*/class MyRectangle :public Shape
{
public:MyRectangle(double l, double w);//構(gòu)造函數(shù),并用l和w構(gòu)造基類的x和y。double GetArea();//求矩形的面積。double GetLength();//獲取矩形的長。double GetWidth();//獲取矩形的寬。};MyRectangle::MyRectangle(double l, double w) :Shape(l, w)
{cout << "Rectangle constuctor ok" << endl;
}double MyRectangle::GetArea()//求矩形的面積。
{double result;result = x * y;return result;
}
double MyRectangle::GetLength()//獲取矩形的長。
{return x;
}
double MyRectangle::GetWidth()//獲取矩形的寬。
{return y;
}/*
(4)在主函數(shù)中對派生類進行測試。
注意,
在程序的開頭定義符號常量PI的值為3.14。
測試的輸出結(jié)果如下:
circle : r = 1, area = 3.14
rectangle : length = 3, width = 4, area = 12
*/int main()
{Circle c1(1);MyRectangle r1(3,4);cout << "circle : r = " << c1.GetRadius();cout << ", area = " << c1.GetArea() << endl;cout << "rectangle : length = " << r1.GetLength();cout << ", width = " << r1.GetWidth();cout << ", area = " << r1.GetArea() << endl;system("pause");return 0;
}
?
總結(jié)
以上是生活随笔為你收集整理的7-28作业直接刷一下的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。