设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1657|回复: 5
打印 上一主题 下一主题

关于加号重载

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-3 01:43:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<iostream>
using namespace std;
class Myclass
{
int num;
public:
Myclass(int a){num=a;};
friend Myclass &operator +(const int a,const Myclass t);
};
Myclass & Myclass::operator +(const int a,const Myclass t)
{
this->num=a+t.num;
return *this;
}

错误提示是:
Compiling...
grre.cpp
E:\C++\c++\fgh\grre.cpp(8) : fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'msc1.cpp', line 1786)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
Error executing cl.exe.
grre.obj - 1 error(s), 0 warning(s)
这是什么错误
2#
发表于 2009-11-3 01:43:19 | 只看该作者
没像你这样重载的,错了不少呢
看看这个
#include<iostream>
using namespace std;
class Myclass
{
int num;
public:
Myclass(int a){num=a;};
void print() { cout<<"num = "<<num<<endl; }
friend Myclass operator +(const Myclass a,const Myclass t);
};
Myclass operator +(const Myclass a,const Myclass t)
{
return Myclass(a.num + t.num);
}
int main()
{
Myclass m1(1),m2(2);
Myclass m3 = m1 + m2;
m3.print();
system("pause");
return 0;
}
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-3 01:43:21 | 只看该作者
我要的是类的每一个数据成员加上一个整数!不是两个类的相加!
你的程序我刚才运行了一下 还是有错误:
Compiling...
fjytjyt.cpp
e:\c++\c++\egdstgrer\fjytjyt.cpp(9) : fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'msc1.cpp', line 1786)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
Error executing cl.exe.
fjytjyt.obj - 1 error(s), 0 warning(s)
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-3 01:43:24 | 只看该作者
我也觉得我的vc6.0有问题.好象一用到友元就有哪个错.
不知道有没有哪个高手指点一下.
回复 支持 反对

使用道具 举报

5#
发表于 2009-11-3 01:43:26 | 只看该作者
友元还要这个域解析运算符?
回复 支持 反对

使用道具 举报

6#
发表于 2009-11-3 01:43:28 | 只看该作者
看看这个行不?我是用microsoft vc++6.0的环境下写的 运行出来你 看看值得不值得参考吧
#include<iostream>
using namespace std;
class myclass
{
int num;
public:
myclass(int a){num=a;}
myclass operator+(int);
void print();
};
myclass myclass::operator+(int t)
{
this->num=this->num+t;
return *this;
}
void myclass::print()
{
cout<<"num is :"<<num<<endl;
}
void main()
{
myclass a(6);
myclass b=a+6;
b.print();
system("pause");
}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 10:19 , Processed in 0.158144 second(s), 10 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表