标题:??????错在那里啊
只看楼主
jianfeng520
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-12-16
 问题点数:0 回复次数:9 
??????错在那里啊
不知道是编译器的问题还是程序有问题 我用的是VC++6.0的编译器 请高手指路
#include<iostream>
using namespace std;
//-------------------------------------------
class Integer
{
public:
    void set(int ii=0){i=ii;}
    Interger operator+(int);
    Interger operator+(Interger&);
private:
    int i;
};
//-------------------------------------------
Integer Integer::operator+(int x)
{
    Integer result;
    result.set(i+x);
    return result;
}
//-------------------------------------------
Integer Integer::operator+(Integer& x)
{
    Integer result;
    result.set(i+x.i);
    return result;
}
//-------------------------------------------
class Integer2
{
public:
    void set(int ii=0){i=ii;}
    friend Integer2 operator+(Integer2&,Integer2&);
    friend Integer2 operator+(Integer2&,int);
    friend Integer2 operator+(int,Integer2&);
private:
    int i;
};
//--------------------------------------------
Integer2 operator+(Integer2& x,Integer2& y)
{
    Integer2 result;
    result.set(x.i+y.i);
    result result;
}
//--------------------------------------------
Integer2 operator+(Integer2& x,int a)
{
    Integer2 result;
    result.set(x.i+a);
    return result;
}
//--------------------------------------------
Integer2 operator+(int a,Integer2& x)
{
    Integer2 result;
    result.set(a+x.i);
    return result;
}
//--------------------------------------------
int main()
{
    Integer A,B,C;
    A.set(20);
    C.set(10);
    B=A+4;
    B=A+C;

    Integer2 D,E,F;
    D.set(100);
    F.set(200);
    E=D+40;
    E=D+F;
    E=40+D;
    return 0;
}
//--------------------------------------------
搜索更多相关主题的帖子: private include public return 
2008-03-07 22:54
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
我只知道有拼写错误..还真不知道为什么友员重载回错啊

学习需要安静。。海盗要重新来过。。
2008-03-07 23:52
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:0 
没有注释的代码

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2008-03-08 10:44
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
我觉得除了拼写错的..其它没问题..但是报错...估计运算符重载和友员类一起用产生了错...也不知道是不是......郁闷

学习需要安静。。海盗要重新来过。。
2008-03-08 10:46
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
兄弟换编译器啊..vs2005编译没问题

学习需要安静。。海盗要重新来过。。
2008-03-08 12:14
jianfeng520
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-12-16
得分:0 
知道了哈 谢谢了 不过我电脑上暂时就只有vc++6.0的 真的很感谢哦
2008-03-08 23:13
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
你郁闷我也郁闷啊。。呵呵我也是一直用vc6.0得没想到它会在运算符重载的友员函数出问题。。

学习需要安静。。海盗要重新来过。。
2008-03-08 23:16
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
得分:0 
VC++ 6.0对友元支持不行,这个很早以前就有人提示过了,如果操作友元的话,就用VS2005,或者是DEV_C++(比较小)

雁无留踪之意,水无取影之心
2008-03-09 08:57
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
得分:0 
程序代码:
#include<iostream>
using namespace std;
//-------------------------------------------
class Integer
{
public:
    void set(int ii=0){i=ii;}
    Integer operator +(int); //........
    Integer operator +(Integer&); //........
private:
    int i;
};
//-------------------------------------------
Integer Integer::operator+(int x)
{
    Integer result;
    result.set(i+x);
    return result;
}
//-------------------------------------------
Integer Integer::operator+(Integer& x)
{
    Integer result;
    result.set(i+x.i);
    return result;  
}
//-------------------------------------------
class Integer2
{
public:
    void set(int ii=0){i=ii;}
    friend Integer2 operator+(Integer2&,Integer2&);
    friend Integer2 operator+(Integer2&,int);
    friend Integer2 operator+(int,Integer2&);
private:
    int i;
};
//--------------------------------------------
Integer2 operator+(Integer2& x,Integer2& y)
{
    Integer2 result;
    result.set(x.i+y.i);
    return result;  //........
}
//--------------------------------------------
Integer2 operator+(Integer2& x,int a)
{
    Integer2 result;
    result.set(x.i+a);
    return result;
}
//--------------------------------------------
Integer2 operator+(int a,Integer2& x)
{
    Integer2 result;
    result.set(a+x.i);
    return result;
}
//--------------------------------------------
int main()
{
    Integer A,B,C;
    A.set(20);
    C.set(10);
    B=A+4;
    B=A+C;

    Integer2 D,E,F;
    D.set(100);
    F.set(200);
    E=D+40;
    E=D+F;
    E=40+D;
    return 0;
}

雁无留踪之意,水无取影之心
2008-03-09 09:05
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
谢谢啊..呵呵,我检查了半天觉得没问题..可是编译器报错....现在也收获东西了......

学习需要安静。。海盗要重新来过。。
2008-03-09 09:07



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




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

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