| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 566 人关注过本帖
标题:这个程序是在不明白应该怎样编,希望大神指导!
只看楼主 加入收藏
童木不会飞
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-10-21
结帖率:50%
收藏
 问题点数:0 回复次数:7 
这个程序是在不明白应该怎样编,希望大神指导!
  定义一个时间类,包括小时、分、秒三个数据成员,自定义构造函数和析构函数,并具有设置时间函数SetTime()、返回时间函数GetTime(),以及显示当前时间的成员函数ShowTime()。此外,还需要对=、+=、++、+、==、!=、>=、<、>这些运算符进行重载。
2013-11-27 20:41
wu2782641803
Rank: 2
等 级:论坛游民
帖 子:65
专家分:46
注 册:2013-10-28
收藏
得分:0 
状态 主 题 发 表 回复 人气 最后更新
 论坛公告:本版禁止毫不思索的求作业。凡此类帖子一概删除。
2013-11-27 22:52
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:0 
很基础的一些语法...自己尝试一下吧...

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-11-28 11:10
童木不会飞
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-10-21
收藏
得分:0 
回复 2楼 wu2782641803
可是我已将尝试着编了一周多的时间了,我就不知道这个程序为啥最后还要对那么多的运算符进行重载,感觉毫无意义
2013-11-28 15:35
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:0 
回复 4楼 童木不会飞
那就是说如果不要重载,你还是会做的咯?

如果不要重载,你可以不用运算符重载
把所有的运算符变成函数...
比如==,写一个函数叫做isEqual
<写一个函数叫做isLess
...
诸如此类...

顺便回答你的疑问,为什么要重载...
因为A+B=C
你为什么不问"为什么要用运算符,而不是函数呢"
你可以强制用户必须调用C = A.add(B);
结果是一样的...你觉得哪种更有用户接受度呢?

写软件不是说软件功能正确就行了,最终还要有人用啊...

[ 本帖最后由 peach5460 于 2013-11-28 16:24 编辑 ]

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-11-28 16:20
左手拉一只猫
Rank: 4
来 自:杭州
等 级:业余侠客
帖 子:70
专家分:250
注 册:2013-10-27
收藏
得分:0 
以下是引用peach5460在2013-11-28 16:20:46的发言:

那就是说如果不要重载,你还是会做的咯?

如果不要重载,你可以不用运算符重载
把所有的运算符变成函数...
比如==,写一个函数叫做isEqual
<写一个函数叫做isLess
...
诸如此类...

顺便回答你的疑问,为什么要重载...
因为A+B=C
你为什么不问"为什么要用运算符,而不是函数呢"
你可以强制用户必须调用C = A.add(B);
结果是一样的...你觉得哪种更有用户接受度呢?

写软件不是说软件功能正确就行了,最终还要有人用啊...

详细的解释,没有重载C++功能像被阉割了一部分一样,讲C++的书至少有一章会用来讲重载运算符的。。。。

我能帮你的只能到这里了。。。
2013-11-28 16:41
童木不会飞
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-10-21
收藏
得分:0 
回复 5楼 peach5460
受教了,多谢!!!
2013-12-01 22:46
tianxin_fox
Rank: 1
等 级:新手上路
帖 子:8
专家分:7
注 册:2013-12-7
收藏
得分:0 
重载多见于符合类型, C++提供的运算符只能是单个运算的, 就像你说的时间一样, 必须要有运算符重载才能保证加减乘除赋值之类的,
这是我以前练习的时候写的, 希望对你有帮助
程序代码:
//重载输入输出练习
#include <iostream>
#include <iomanip>
using namespace std;
class Time
{
public:
    Time();
    Time(int x, int y):i(x), j(y){}
    ~Time();
    friend ostream& operator<<(ostream& sc, Time& c);
    friend istream& operator>>(istream& sr, Time& c);
    Time operator+(Time& c)
    {
        Time t;
        t.i = i + c.i;
        if(j + c.j > 59)
        {
            ++t.i;
            t.j = (j + c.j) - 60;
        }
        return t;
    }
    Time operator++()//前++
    {
        if(j > 59)
        {
            j -= 60;
            ++i;
        }
        else
        {
            ++j;
        }
        return *this;
    }
//    Time operator++(int)
private:
    int i;
    int j;
};
Time::Time()
{
    i = 0;
    j = 0;
}
Time::~Time()
{
}
ostream& operator<<(ostream& sc, Time& c)
{
    sc << setw(2) << setfill('0') << c.i << ":" << setw(2) << setfill('0') << c.j << endl;
    return sc;
}
istream& operator>>(istream& sr, Time& c)
{
    sr >> c.i >> c.j;
    return sr;
}
int main(void)
{
    Time t1, t2;
    cin >> t1 >> t2;
    Time t3 = t1 + t2;
    cout << t1 << t2 << endl << t3;
    for(int i = 0; i < 60; ++i)
    {
        cout << t3++;
    }
    return 0;
}

2013-12-07 22:05
快速回复:这个程序是在不明白应该怎样编,希望大神指导!
数据加载中...
 
   



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

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