- 重新编写 Stonewt类(程序清单11.16和程序清单 11.17),使它有一个状态成员,
由该成员控制对象应转换为英石格式、整数磅格式还是浮点磅格式。重载<<运算符,
使用它来替换show_stn()和 show_Ibs()方法。重载加法、减法和乘法运算符,
以便可以对 Stonewt 值进行加、减、乘运算。编写一个使用所有类方法和友元的小程序,
来测试这个类。
#pragma once
#ifndef PE11_5_H_
#define PE11_5_H_
#include<iostream>
class Stonewt
{
public:
enum Mode {
ST_STONE,ST_PDS_LEFT, ST_POUNDS };
private:
enum {
Lbs_per_stn = 14 };
int stone;
double pds_left;
double pounds;
void setpounds();
Mode mode;
public:
friend Stonewt operator+(const Stonewt& s1, const Stonewt& s2);
friend Stonewt operator-(const Stonewt& s1, const Stonewt& s2);
friend Stonewt operator*(double s1, const Stonewt& s2