利用c++设计实现一个时间类,满足以下要求:

2025-04-04 06:20:53
推荐回答(1个)
回答1:

#include 
#include 

class CTime;

class CTime
{
public:
    // 
    CTime()
    :m_uiHour(0),m_uiMinute(0),m_uiSecond(0)
    {
        printf("call default constructor( CTime() )!\n");
    }
    
    CTime(uint32_t uiHour, uint32_t uiMinute, uint32_t uiSecond)
    {
        printf("call constructor( CTime(uint32_t uiHour, uint32_t uiMinute, uint32_t uiSecond) )!\n");
        SetTime(uiHour, uiMinute, uiSecond);
    }

    CTime(const CTime& nTime)
    {
        m_uiHour = nTime.m_uiHour;
        m_uiMinute = nTime.m_uiMinute;
        m_uiSecond = nTime.m_uiSecond;
        printf("call copy constructor!\n");
    }
    
    ~CTime()
    {
        printf("goodbye!\n");
    }

public:
    void SetTime(uint32_t uiHour, uint32_t uiMinute, uint32_t uiSecond)
    {
        m_uiHour = uiHour > 23? 23:uiHour;
        m_uiMinute = uiMinute > 59? 59: uiMinute;
        m_uiSecond = uiSecond > 59? 59: uiSecond;
    }
    void PrintTime()
    {
        printf("this time: %u:%u:%u\n", m_uiHour,m_uiMinute,m_uiSecond);
    }

private:
    uint32_t m_uiHour;
    uint32_t m_uiMinute;
    uint32_t m_uiSecond;
};

int main()
{
    CTime nTime;
    nTime.PrintTime();
    nTime.SetTime(1,2,3);
    nTime.PrintTime();
    CTime nTime2 = nTime; 
    nTime2.PrintTime();
    return 0;
}

答案已经用代码体现了~