C++ 面向对象程序设计:基于 Point 类和 Plane 类设计圆类 Circle 并实现运算符重载
C++ 面向对象程序设计:基于 Point 类和 Plane 类设计圆类 Circle 并实现运算符重载
本文将详细介绍如何基于 C++ 的 Point 类和 Plane 类设计圆类 Circle,并为 Point 类和 Circle 类重载 << 和 >> 运算符,以实现对象的格式化输入输出。此外,本文还将展示如何在 main 函数中进行 Point 对象和 Circle 对象的文件读写操作。
Point 类结构说明
Point 类的数据成员包括:
① 私有数据成员:X 坐标 x (double 型),Y 坐标 y (double 型)。
Point 类成员函数包括:
① 有参构造函数 Point(double, double),其中参数分别为 X 坐标和 Y 坐标,默认值均为 0。
② 公有函数成员 void setX(double) 和 double getX() const 分别返回和设置 X 坐标。
③ 公有函数成员 void setY(double) 和 double getY() const 分别返回和设置 Y 坐标。
④ 重载运算符 << 以实现 Point 对象的格式输出,输出格式要求:
( <X 坐标>, <Y 坐标> )
例如:(1.0, 2.0) 等。
⑤ 重载运算符 >> 以实现 Point 对象的格式输入,输入格式要求:
( <X 坐标>, <Y 坐标> )
例如:(1.0, 2.0) 等。
Plane 类结构说明
Plane 类的成员函数包括:
① 纯虚函数 virtual double length() const 用于计算平面图形的周长。
② 纯虚函数 virtual double area() const 用于计算平面图形的面积。
Circle 类结构说明
公有派生圆类 Circle 以点类 Point、平面图形类 Plane 为基类,Circle 类的结构说明如下:
Circle 类的数据成员包括:
① 圆心坐标继承自 Point 类。
② 保护静态数据常量 PI (double 型),其值为 3.14159。
③ 私有数据成员:半径 radius (double 型)。
Circle 类成员函数包括:
① 有参构造函数 Circle(double, double, double),其中函数参数包括圆心坐标和半径,圆心调用 Point 类构造函数进行构造,各参数默认值为 0。
② 公有函数成员 void setR(double) 和 double getR() const 分别返回和设置 radius。
③ 重载 double area() const 用于计算圆的面积。
④ 重载 double length() const 用于计算圆的周长。
⑤ 重载运算符 << 以实现 Circle 对象的格式输出,输出格式要求:
(( <X 坐标>, <Y 坐标> ), <半径> )
例如:((1.0, 2.0), 3.0) 等。
⑥ 重载运算符 >> 以实现 Circle 对象的格式输入,输入格式要求:
(( <X 坐标>, <Y 坐标> ), <半径> )
main(void) 说明
main(void) 的操作顺序描述如下:
① 首先已输入的 d1、d2 来构造 Point 对象 p,并将 p 用 << 写入文本文件 s3.txt 中。
② 再将文本文件 s3.txt 打开,应用 >> 操作将里面的数据读入到 Point 对象 p 中。
③ 利用 Point 对象 p 的数据设置 Circle 对象 c,设置要求:将 c 的圆心 X 坐标设置为 p 的 Y 坐标,将 c 的圆心 Y 坐标设置为 p 的 X 坐标,将 c 的半径设置为 p 的 Y 坐标与 X 坐标的和。并将设置好的 c 写入二进制文件 b3.dat 中。
④ 再将二进制文件 b3.dat 打开,将里面的数据读入到 Circle 对象 c 中。
⑤ 最后以 c 对象为参数调用 f 函数。
内容:代码如下:
// ... 代码示例 ...
原文地址: https://www.cveoy.top/t/topic/ok27 著作权归作者所有。请勿转载和采集!