| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 369 人关注过本帖
标题:这个错误怎样改?
只看楼主 加入收藏
ku_klox
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2010-4-3
结帖率:91.67%
收藏
已结贴  问题点数:0 回复次数:4 
这个错误怎样改?
#include <iostream>
using namespace std;
class real
{
public:
    real(int j,int k);
    friend real operator+(real m,real n);
    void show();
private:
    int a,b;
};
real::real(int j,int k)
{
    a=i;
    b=j;
}
real operator+(real m,real n)
{
    real reall;
    reall.a=m.a+n.a;
    reall.b=m.b+n.b;
    return reall;
}
void real::show()
{
    cout<<a<<" "<<b<<endl;
}
int main()
{
    real cs(1,2),cp(3,4);
    real temp;
    temp=operator+(cs,cp);
    temp.show();
    return 0;
}



编译出现fatal error C1001: INTERNAL COMPILER ERROR这样的错误,请各位帮忙改下,谢了!


[ 本帖最后由 ku_klox 于 2010-9-1 09:00 编辑 ]
2010-09-01 08:49
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
收藏
得分:8 
请参考:
程序代码:
#include <iostream>
using namespace std;
class real
{
public:
    real(int j,int k);
    friend real operator+(real m,real n);
    void show();
private:
    int a,b;
};
real::real(int j,int k)
{
    /* 变量名有误。
    a=i;
    b=j;
    */
   a = j;
   b = k;
}
real operator+(real m,real n)
{
    real reall(0, 0);            /* 没有提供默认的构造函数,在此调用自定义的构造函数 */
    reall.a=m.a+n.a;
    reall.b=m.b+n.b;
    return reall;
}
void real::show()
{
    cout<<a<<" "<<b<<endl;
}
int main()
{
    real cs(1,2),cp(3,4);
    real temp(0, 0);                    /* 没有提供默认的构造函数,在此调用自定义的构造函数 */
    temp=cs+cp;
    temp.show();
    return 0;
}

2010-09-01 09:09
ku_klox
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2010-4-3
收藏
得分:0 
回复 2楼 zhoufeng1988
我用VC6.0运行还是没能通过,他显示的错误跟刚才的一样,请问这是不是编译器的问题啊?
2010-09-01 09:49
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
收藏
得分:0 
我使用的是MinGW公司的g++编译器。
-------------------------------------------------------------------------------
这好像是VC6的一个Bug。
你使用iostream.h头文件,去除using namespace std;。就可以编译通过了。
2010-09-01 10:58
makebest
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:658
专家分:962
注 册:2005-3-17
收藏
得分:0 
这个VC6编译通过了.
#include <iostream>
using namespace std;
class real
{
public:   
    real(int j, int k);
    real operator+(real n);
    void show();
private:
    int a, b;
};
real::real(int j,int k)
{
    a=j;
    b=k;
}
real real::operator+(real n)
{
    return real(a+n.a, b+n.b);
}
void real::show()
{
    cout<<a<<" "<<b<<endl;
}
int main()
{
    real cs(1,2),cp(3,4);
    real temp=cs+cp;
    temp.show();
    return 0;
}
2010-09-01 11:17
快速回复:这个错误怎样改?
数据加载中...
 
   



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

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