【C++练习】基于C++的Clock类设计与实现

题目:

基于C++的Clock类设计与实现

问题描述

设计一个名为Clock的类,用于表示一个时钟。该类应包含以下特性:

  1. 私有数据成员
    • hour:表示小时,类型为int
    • minute:表示分钟,类型为int
    • second:表示秒,类型为int
  2. 公有成员函数
    • 默认构造函数:初始化时钟为12:30:30,并在控制台输出“正在默认构造对象”。
    • 带参数的构造函数:接受三个参数(小时、分钟、秒),用于初始化时钟。如果提供的时间值不合理(即小时不在0-23之间,分钟或秒不在0-59之间),则使用默认值12:30:30初始化,并在控制台输出“错误:提供的时间值不合理,使用默认值初始化。”。否则,在控制台输出“正在构造对象”。
    • 拷贝构造函数:接受一个Clock对象的引用,复制该对象,并在控制台输出“正在复制构造对象”。
    • 析构函数:在对象销毁时,在控制台输出“正在析构对象”。
    • showtime成员函数:无参数,用于在控制台显示时钟的当前时间,格式为hour:minute:second
  3. main函数中
    • 创建一个使用默认构造函数的Clock对象myclock,并显示其时间。
    • 创建一个使用带参数构造函数(小时为8,分钟为16,秒为16)的Clock对象yourclock,并显示其时间。
    • 使用yourclock对象通过拷贝构造函数创建另一个Clock对象otherclock,并显示其时间。

源代码:

#include <iostream>

using namespace std;

class Clock
{
private:
    int hour, minute, second;

public:
    // 默认构造函数,初始化时钟为12:30:30
    Clock() : hour(12), minute(30), second(30)
    {
        cout << "正在默认构造对象" << endl;
    }

    // 构造函数,使用提供的小时、分钟和秒初始化时钟
    Clock(int Newh, int Newm, int News) : hour(Newh), minute(Newm), second(News)
    {
        // 可以添加一些检查以确保时间的合理性
        if (hour < 0 || hour > 23 || minute < 0 || minute > 59 || second < 0 || second > 59) {
            cout << "错误:提供的时间值不合理,使用默认值初始化。" << endl;
            hour = 12; minute = 30; second = 30;
        }
        cout << "正在构造对象" << endl;
    }

    // 拷贝构造函数,复制一个Clock对象
    Clock(const Clock& c) : hour(c.hour), minute(c.minute), second(c.second)
    {
        cout << "正在复制构造对象" << endl;
    }

    // 析构函数
    ~Clock()
    {
        cout << "正在析构对象\n";
    }

    // 显示时间
    void showtime() const
    {
        cout << hour << ":" << minute << ":" << second << endl;
    }
};

int main()
{
    Clock myclock;
    cout << "myclock:" << endl;
    myclock.showtime();

    cout << "yourclock:" << endl;
    Clock yourclock(8, 16, 16);
    yourclock.showtime();

    cout << "otherclock:" << endl;
    Clock otherclock(yourclock);
    otherclock.showtime();

    return 0;
}

运行截图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值