第11章 使用类4
第11章 使用类4
第5题
重新编写Stonewt类(程序清单11.16和程序清单11.17),使它有一个状态成员,由该成员控制对象应转换为英石格式,整数磅格式还是浮点磅格式。 重载<<运算符, 使用它来替换show_stn()和show_lbs()方法。重载加法、减法和乘法运算符,以便可以对Stonewt值进行加、减、乘运算, 编写一个使用所有类方法和友元的小程序, 来测试这个类。
Stonewt.h头文件
#ifndef STONEWT_H_ #define STONEWT_H_ #include <iostream> class Stonewt { public: enum Style{STONE, POUNDS, FLOATPOUNDS}; private: enum {Lbs_per_stn = 14}; // 1英石等于14磅 int stone; double pds_left; // double类型的磅值 double pounds; Style style; public: Stonewt(double lbs); Stonewt(int stn, double lbs); // 针对int类型的英石值和double类型的磅值的构造函数 Stonewt(); // 默认构造函数 ~Stonewt(); void set_style(Style m); Stonewt operator+(const Stonewt &s) const; Stonewt operator-(const Stonewt &s) const; Stonewt operator*(double n) const; friend std::ostream & operator<<(std::ostream & os, const Stonewt &s); }; #endif
源文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?