流萤k423 2024-04-15 18:13 采纳率: 80.5%
浏览 56
已结题

定义一个时间类 Time

定义一个时间类 Time
数据成员(访问权限定义为protected):

时、分、秒

成员函数(访问权限定义为public):

带默认参数的构造函数:数据成员初始化

Time(double _hour = 0.0, double _minute = 0.0, double _second = 0.0);

拷贝构造函数:数据成员初始化 Time(const Time &time);

设置小时

设置分钟

设置秒

获取小时(定义为const成员函数)

获取分钟(定义为const成员函数)

获取秒(定义为const成员函数)

打印时间信息(定义为const成员函数),格式:09:02:03

要求:将类的定义与类成员函数的实现分开。

  • 写回答

4条回答 默认 最新

  • 关注

    上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    问题:如何定义一个时间类 Time?

    解决方案:

    1. 定义一个时间类 Time:
    class Time {
    protected:
        double hour; // 时
        double minute; // 分
        double second; // 秒
    public:
        Time(double _hour = 0.0, double _minute = 0.0, double _second = 0.0);
        Time(const Time &time);
        void setHour(double _hour);
        void setMinute(double _minute);
        void setSecond(double _second);
        double getHour() const; // const 成员函数
        double getMinute() const; // const 成员函数
        double getSecond() const; // const 成员函数
        void printTime() const; // const 成员函数
    };
    
    1. 实现数据成员初始化的带默认参数的构造函数:
    Time::Time(double _hour /* = 0.0 */, double _minute /* = 0.0 */, double _second /* = 0.0 */)
        : hour(_hour), minute(_minute), second(_second) {}
    
    1. 实现拷贝构造函数:
    Time::Time(const Time &time)
        : hour(time.hour), minute(time.minute), second(time.second) {}
    
    1. 实现设置小时、分钟、秒和获取小时、分钟、秒的成员函数:
    void Time::setHour(double _hour) {
        hour = _hour;
    }
    
    void Time::setMinute(double _minute) {
        minute = _minute;
    }
    
    void Time::setSecond(double _second) {
        second = _second;
    }
    
    double Time::getHour() const {
        return hour;
    }
    
    double Time::getMinute() const {
        return minute;
    }
    
    double Time::getSecond() const {
        return second;
    }
    
    1. 实现打印时间信息的成员函数:
    void Time::printTime() const {
        printf("%.02f:%.02f:%.02f\n", hour, minute, second);
    }
    
    1. 修改后的完整代码:
    #include <cstdio>
    
    class Time {
    protected:
        double hour; // 时
        double minute; // 分
        double second; // 秒
    public:
        Time(double _hour = 0.0, double _minute = 0.0, double _second = 0.0);
        Time(const Time &time);
        void setHour(double _hour);
        void setMinute(double _minute);
        void setSecond(double _second);
        double getHour() const; // const 成员函数
        double getMinute() const; // const 成员函数
        double getSecond() const; // const 成员函数
        void printTime() const; // const 成员函数
    };
    
    Time::Time(double _hour /* = 0.0 */, double _minute /* = 0.0 */, double _second /* = 0.0 */)
        : hour(_hour), minute(_minute), second(_second) {}
    
    Time::Time(const Time &time)
        : hour(time.hour), minute(time.minute), second(time.second) {}
    
    void Time::setHour(double _hour) {
        hour = _hour;
    }
    
    void Time::setMinute(double _minute) {
        minute = _minute;
    }
    
    void Time::setSecond(double _second) {
        second = _second;
    }
    
    double Time::getHour() const {
        return hour;
    }
    
    double Time::getMinute() const {
        return minute;
    }
    
    double Time::getSecond() const {
        return second;
    }
    
    void Time::printTime() const {
        printf("%.02f:%.02f:%.02f\n", hour, minute, second);
    }
    
    int main() {
        Time t1; // 调用带默认参数的构造函数
        t1.printTime(); // 打印 0.00:0.00:0.00
    
        Time t2(1.23, 4.56, 7.89); // 调用带参数的构造函数
        t2.printTime(); // 打印 1.23:4.56:7.89
    
        Time t3(t2); // 调用拷贝构造函数
        t3.printTime(); // 打印 1.23:4.56:7.89
    
        t1.setHour(11.0);
        t1.setMinute(22.0);
        t1.setSecond(33.0);
        t1.printTime(); // 打印 11.00:22.00:33.00
    
        printf("%.02f\n", t1.getHour()); // 打印 11.00
    
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月30日
  • 已采纳回答 4月22日
  • 创建了问题 4月15日

悬赏问题

  • ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
  • ¥15 电脑蓝屏logfilessrtsrttrail问题
  • ¥20 关于wordpress建站遇到的问题!(语言-php)(相关搜索:云服务器)
  • ¥15 【求职】怎么找到一个周围人素质都很高不会欺负他人,并且未来月薪能够达到一万以上(技术岗)的工作?希望可以收到写有具体,可靠,已经实践过了的路径的回答?
  • ¥15 Java+vue部署版本反编译
  • ¥100 对反编译和ai熟悉的开发者。
  • ¥15 带序列特征的多输出预测模型
  • ¥15 Python 如何安装 distutils模块
  • ¥15 关于#网络#的问题:网络是从楼上引一根网线下来,接了2台傻瓜交换机,也更换了ip还是不行
  • ¥15 资源泄露软件闪退怎么解决?