标题:大家帮我看一下这个程序哪里有问题
只看楼主
雪凝·夜殇
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-6-30
 问题点数:0 回复次数:3 
大家帮我看一下这个程序哪里有问题
设计个计算器类Calculator,它只有一个用于计数的数据成员count。该计算器的有效计数范围是0~65535,实现计数器的前自增,后自增,前自减,后自减,两个计数器想加减等运算。
下面是我写的程序,但是总是“有一个无法解析的外部xx”,哪里有问题阿???
#include<iostream>
using namespace std;
class Calculator{
private:
    int count;
public:
    Calculator(int i=0){count=i;}
    Calculator & operator++();
    Calculator & operator++(int);
    Calculator & operator--();
    Calculator & operator--(int);
    Calculator operator+(Calculator a);
    Calculator operator<<(Calculator a);
    Calculator operator>>(Calculator a);
};
Calculator & Calculator::operator++(){
    ++count;
    return *this;
}
Calculator & Calculator::operator++(int){
    count++;
    return *this;
}
Calculator & Calculator::operator--(){
    --count;
    return *this;
}
Calculator & Calculator::operator--(int){
    count--;
    return *this;
}
Calculator Calculator::operator+(Calculator a){return Calculator(count+a.count);}
Calculator Calculator::operator<<(Calculator a)
{cout<<count<<endl;
return count;}
Calculator Calculator::operator>>(Calculator a)
{cin>>count;
return count;}
 
void main()
{
    int a;
    Calculator b;
    Calculator sum;
    Calculator c;
    cout<<"请输入数字: "<<endl;
    cin>>a;
    if(a>65535||a<0)
    {cout<<"该数字超出该计数器的有效计数范围!"<<endl;}
    else{
    cout<<"请再次输入该数字: "<<endl;
     b.operator>>(b);
    ++b;
    cout<<"前自增的结果是:"<<endl;
     b.operator<<(b);
    b++;
    cout<<"后自增的结果是:"<<endl;
    b.operator<<(b);
    --b;
    cout<<"前自减的结果是:"<<endl;
    b.operator<<(b);
    b--;
    cout<<"后自减的结果是:"<<endl;
    b.operator<<(b);
    cout<<"请输入要加的数字:"<<endl;
    c.operator>>(c);
    sum=c + b;
    sum.operator<<(sum);}
}
搜索更多相关主题的帖子: 计算器 private include public 计数器 
2015-06-30 20:33
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
哪里有问题?
问题要你描述出来,解决手段是别人给的。

另外,从你代码上看,你应该回头重修,基本上一无是处,连基本的 后++ 是什么意思都不知道。
假设 int i = 0;
i++ 这是个表达式,这个表达式的值是 i 原先的值,副作用(side effect)是 i增加了1。
而像  b.operator>>(b); 你自己不觉得搞笑、别扭?
2015-07-01 08:36
夏如风
Rank: 2
等 级:论坛游民
威 望:2
帖 子:10
专家分:15
注 册:2015-6-29
得分:0 
好多错误,建议多读读书
2015-07-01 12:11
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
得分:0 
#include<iostream>
using namespace std;
class Calculator
{
private:
    int count;
public:
    Calculator(){count=0;}
    Calculator(int x){count=x;}
    friend ostream & operator<<(ostream&os,const Calculator&c);
    int Get(){return count;}
};
ostream&operator<<(ostream&os,Calculator&c)
{
    os<<c.Get();
    return os;
}
int main()
{
    Calculator example(66);
    cout<<example;
    return 0;
}
输出重载
2015-07-01 14:45



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




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

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