| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1476 人关注过本帖
标题:小弟刚学了一个学期的C++,下面这份代码请大佬们帮忙看看哪里出错了
只看楼主 加入收藏
wxwang557
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-4-18
收藏
 问题点数:0 回复次数:2 
小弟刚学了一个学期的C++,下面这份代码请大佬们帮忙看看哪里出错了
头文件
#ifndef thehead
#define thehead
using namespace std;
class Time {
friend ostream &operator<<(ostream &os,const Time &time);
int second;
public:
    Time (int tt,int mm,int ss)
    {second=tt*3600+mm*60+ss;}
    bool operator>(const Time &time2)
    {return second>time2.second;}
    bool operator<(const Time &time2)
    {return second<time2.second;}
    bool operator==(const Time &time2)
    {return second==time2.second;}
    bool operator>=(const Time &time2)
    {return second>=time2.second;}
    bool operator<=(const Time &time2)
    {return second<=time2.second;}
    bool operator!=(const Time &time2)
    {return second!=time2.second;}
    Time &operator+=(const Time &othertime)
    {second+=othertime.second;return *this;}
    Time &operator-=(const Time &othertime)
    {second-=othertime.second;return *this;}
    int operator-(const Time &time2)
    {return second-time2.second; }
    Time &operator++()                  
    {
        second++;
        return *this;
    }
    Time &operator--()
    {
        second--;
        return *this;
    }
    Time operator++(int x)
    {
        Time tmp=*this;
        second++;
        return tmp;
    }
    Time operator--(int x)
    {
        Time tmp=*this;
        second--;
        return tmp;
    }
};
#endif // thehead



operator<<函数的实现文件      1.cpp
#include<iostream>
#include"thehead.h"
using namespace std;
ostream &operator<<(ostream &os,const Time &time)
{
    int tt,mm,ss;
    tt=(time.second)/3600;
    mm=((time.second)%3600)/60;
    ss=(((time.second)%3600)%60);
    os<<tt<<":"<<mm<<":"<<ss;
    return os;
}


main函数文件    2.cpp
#include<iostream>
#include"thehead.h"
using namespace std;
int main ()
{
    int a,b,c,d,e;
    Time time1(16,40,39);
    Time time2(15,26,20);
    Time othertime(2,25,10);
    if(time1>time2)
        cout<<time1-time2;
        cout<<time1;
        cout<<time1+=othertime;
        return 0;
}


小弟在执行1.cpp时出现的编译错误为:undefined reference to `WinMain@16'和error: ld returned 1 exit status
执行2.cpp时出现的编译错误为:error: no match for 'operator+=' (operand types are 'std::ostream {aka std::basic_ostream<char>}' and 'Time')
把2.cpp的cout<<time1+=othertime;注释掉的话出现的编译错误就为:undefined reference to `WinMain@16'和error: ld returned 1 exit status



拜托各位大佬帮忙解答一下,感激不尽!

搜索更多相关主题的帖子: Time operator const second return 
2018-04-18 19:27
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:0 
建 console工程
不要弄成 Win32工程
2018-04-18 20:42
wxwang557
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-4-18
收藏
得分:0 
回复 2楼 rjsp
小弟我用的是codeblocks,在写这段代码的时候是直接新建cpp文件和头文件的,并没有创建工程,能告诉我具体的步骤吗?感激
2018-04-18 20:51
快速回复:小弟刚学了一个学期的C++,下面这份代码请大佬们帮忙看看哪里出错了
数据加载中...
 
   



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

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