标题:采用运算符重载实现时钟类计时程序 ,这里是本人编写的一个程序,错误多多, ...
只看楼主
yangxiaoniu
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-11-5
结帖率:66.67%
已结贴  问题点数:10 回复次数:2 
采用运算符重载实现时钟类计时程序 ,这里是本人编写的一个程序,错误多多,该如何修改呢?
#include<iostream>
using namespace std;
class Time
{
    int h,m,s;
public:
    Time(int a=0,int b=0,int c=0)
    {
        h=a;
        m=b;
        s=c;
    }
    void show()
    {
        cout<<h<<":"<<m<<":"<<s<<endl;
    }
    Time::operator++();
    Time::operator++(int);
};


Time::operator++()
{
    ++s;
    if(s>=60)
    {
        s=s-60;
        ++m;
        if(m>=60)
        {
            m=m-60;
            ++h;
            h=h%24;
        }
    }
}


int main()
{
    Time c1(23,59,59),c2;
    c2=++c1;
    c2.show();
    return 0;
}

[ 本帖最后由 yangxiaoniu 于 2014-11-12 23:07 编辑 ]
搜索更多相关主题的帖子: include include public public 如何 如何 
2014-11-12 21:07
ClarenceC
Rank: 2
等 级:论坛游民
帖 子:54
专家分:18
注 册:2014-1-10
得分:10 
我试了一下,我认为问题主要出在成员函数没有返回类型,且这个程序还可以再进行优化(请楼主自行考虑),这是代码,请参考。
#include<iostream>
using namespace std;
class Time
{
    int h, m, s;
public:
    Time(int a = 0, int b = 0, int c = 0)
    {
        h = a;
        m = b;
        s = c;
    }
    void show()
    {
        cout << h << ":" << m << ":" << s << endl;
    }
    void operator++();
    void operator++(int);
};


void Time::operator++()
{
    ++s;
    if (s >= 60)
    {
        s = s - 60;
        ++m;
        if (m >= 60)
        {
            m = m - 60;
            ++h;
            h = h % 24;
        }
    }
}

int main()
{
    Time c1(23, 59, 59), c2;
    ++c1;
    c2 = c1;
    c2.show();
    system("pause");
    return 0;
}
2014-11-13 11:39
yangxiaoniu
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-11-5
得分:0 
回复 2 楼 ClarenceC
谢谢了哦,正在改进呢
2014-11-14 20:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-438500-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.099571 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved