|

楼主 |
发表于 2019-11-16 23:03:26
|
显示全部楼层
本帖最后由 bin554385863 于 2019-11-17 01:00 编辑
- #include <iostream>
- class Circle
- {
- private:
- double Radius; //半径
- public:
- static const double PI;
- Circle(double r = 0) : Radius(r) //构造函数
- {
- }
- Circle(const Circle &circle) //赋值构造
- {
- this->Radius = circle.Radius;
- }
- void setCircleRadius(double r) //设置半径
- {
- Radius = r;
- }
- double getCircleRadius() const //获取半径
- {
- return Radius;
- }
- double getCirclePerimeter() const //获取周长
- {
- return 2 * PI * Radius;
- }
- double getCircleArea() const//获取面积
- {
- return PI * Radius * Radius;
- }
- /*扩大倍数*/
- Circle &operator*(int n)
- {
- static Circle circle;
- circle.Radius = n*this->Radius;
- return circle;
- }
- friend Circle operator*(int n, Circle &circle)
- {
- return circle*n;
- }
- friend std::ostream &operator<<(std::ostream &os, Circle &circle) //重载<<运算符
- {
- os << "CircleRadius: " << circle.Radius << "\n"
- << "CirclePerimeter: " << circle.getCirclePerimeter() << "\n"
- << "CircleArea: " << circle.getCircleArea() << std::endl;
- return os;
- }
- ~Circle() {}
- };
- double const Circle::PI = 3.141592653;
- int main(int argc, char const *argv[])
- {
- Circle circle0, circle1, circle2,circle3;
- circle1.setCircleRadius(5);
- circle2 = circle1*2;
- circle3 = 5*circle2;
- std::cout<<circle0<<std::endl;
- std::cout<<circle1<<std::endl;
- std::cout<<circle2<<std::endl;
- std::cout<<circle3<<std::endl;
- return 0;
- }
复制代码
------------------------------------------------------------------------------
Microsoft Windows [版本 10.0.18363.476]
(c) 2019 Microsoft Corporation。保留所有权利。
E:\Users\admin\Documents\VScode>c:\Users\admin\.vscode\extensions\ms-vscode.cpptools-0.26.1\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-bq53flzb.pdd --stdout=Microsoft-MIEngine-Out-0ezshnul.zpd --stderr=Microsoft-MIEngine-Error-dzndlmdf.zut --pid=Microsoft-MIEngine-Pid-xianufj3.alm --dbgExe=D:\MinGW\bin\gdb.exe --interpreter=mi
CircleRadius: 0
CirclePerimeter: 0
CircleArea: 0
CircleRadius: 5
CirclePerimeter: 31.4159
CircleArea: 78.5398
CircleRadius: 10
CirclePerimeter: 62.8319
CircleArea: 314.159
CircleRadius: 50
CirclePerimeter: 314.159
CircleArea: 7853.98
E:\Users\admin\Documents\VScode> |
|