| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 369 人关注过本帖
标题:请问这错误怎么回事?
只看楼主 加入收藏
a99875984
Rank: 2
等 级:论坛游民
帖 子:188
专家分:24
注 册:2012-2-11
结帖率:94.64%
收藏
已结贴  问题点数:20 回复次数:3 
请问这错误怎么回事?
程序代码:
#include<iostream>
using namespace std;
class time
{
private:
    int h,m,s;
public:
    time (int a,int b,int c);
    void operator +(time t1);
    void operator -(time t1);
    void shuchu();
};

time::time(int a,int b,int c)
{
    h=a;
    m=b;
    s=c;
    cout<<h<<":"<<m<<":"<<s<<endl;
}

void  time::operator +(time t1)
{
    s=s+t1.s;
    if(s>=60)
    {
        s-=60;
        m++;
    }
    m=m+t1.m;
    if(m>=60)
    {
        m-=60;
        h++;
    }
    h=h+t1.h;
}
void time::operator -(time t1)
{
    s=s+t1.s;
    if(s<0)
    {
        s+=60;
        m--;
    }
    m=m+t1.m;
    if(m<0)
    {
        m+=60;
        h--;
    }
    h=h+t1.h;
}

void time::shuchu()
{
    cout<<h<<":"<<m<<":"<<s<<endl;
}
int main()
{
    int a,b,c,d,e,f;
    cin>>a>>b>>c>>d>>e>>f;
    time t1(a,b,c),t2(d,e,f),t3(0,0,0);
    t3=t1+t2;        //no operator defined which takes a right-hand operand of type 'void' (or there is no acceptable conversion)  这是什么意思啊?
    t3.shuchu();
    return 0;
}
搜索更多相关主题的帖子: color 
2012-06-12 15:07
zxwangyun
Rank: 4
来 自:云南
等 级:业余侠客
威 望:1
帖 子:232
专家分:299
注 册:2008-10-17
收藏
得分:10 
time &operator +(const time &t1);

time &time::operator +(const time &t1)
{
    s=s+t1.s;
    if(s>=60)
    {
        s-=60;
        m++;
    }
    m=m+t1.m;
    if(m>=60)
    {
        m-=60;
        h++;
    }
    h=h+t1.h;
    return *this;
}

努力改变一点点!!
2012-06-12 15:39
zxwangyun
Rank: 4
来 自:云南
等 级:业余侠客
威 望:1
帖 子:232
专家分:299
注 册:2008-10-17
收藏
得分:0 
但是这样定义下来后,+ 其实相当于 += 了
如果你硬是要这么做的话,重新定义一个函数来实现 + 吧

努力改变一点点!!
2012-06-12 15:41
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
收藏
得分:10 
程序代码:
#include <iostream>
using std::cin;
using std::cout;
using std::endl;

class Time
{
public:
    Time(int h, int m, int s):hour(h),minute(m),second(s) {}
    friend Time operator+ (const Time& t1, const Time& t2) ;
//    friend Time operator- (const Time& t1, const Time& t2) ;
    void shuchu() const;
private:
    int hour;
    int minute;
    int second;
};

void Time::shuchu() const
{
    cout<<hour<<":"<<minute<<":"<<second<<endl;
}

Time operator+ (const Time& t1, const Time& t2)
{
    Time t(0,0,0);
    t.second = t1.second + t2.second;
    if (t.second>=60)
    {
        t.minute++;
        t.second-=60;
    }

    t.minute += (t1.minute + t2.minute);
    if (t.minute>=60)
    {
        t.hour++;
        t.minute-=60;
    }

    t.hour += (t1.hour + t2.hour);
    return t;
}
//Time operator- (const Time& t1, const Time& t2) ;

int _tmain(int argc, _TCHAR* argv[])
{
    int a,b,c,d,e,f;
    cin>>a>>b>>c>>d>>e>>f;
    Time t1(a,b,c),t2(d,e,f),t3(0,0,0);
    t3 = t1+t2;
    t3.shuchu();
    return 0;
}

从不知道到知道,到知道自己不知道,成长的道路上脚步深深浅浅
2012-06-12 17:10
快速回复:请问这错误怎么回事?
数据加载中...
 
   



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

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