C++初学遇到的有关问题,请。

C++初学遇到的问题,请高手指点。。
#include "iostream.h"
class fraction
{

long numbera;
long denomi;
long gcd(long a,long b);
public:
fraction()
{
numbera=0;
denomi=1;


}
fraction(long a,long b=1);
  
void disp();
fraction operator+(fraction &dt2);
fraction operator+(long dt2);
    fraction operator-(long dt1,fraction &dt2);

};

fraction::fraction(long a,long b)
{
long wk;
if(b<=0)
b=1;
wk=gcd(a,b);
numbera=a/wk;
denomi= b/wk;

}

fraction fraction::operator+(fraction &dt2)
{
long mul1,mul2;
mul1=numbera*dt2.denomi+dt2.numbera*denomi;
mul2=denomi*dt2.denomi;
return fraction(mul1,mul2);

}

fraction fraction::operator+(long dt2)
{
return fraction(numbera+denomi*dt2,denomi);

}

long fraction::gcd(long a,long b)
{
long wk;
while(b!=0)
{
a=a%b;
wk=a;
a=b;
b=wk;
}
return a;

}
void fraction::disp()
{
cout<<numbera<<"/"<<denomi<<'\n';
}


fraction fraction::operator-(long dt1,fraction &dt2)
{
return fraction(dt1*dt2.denomi+dt2.numbera,dt2.denomi);
}
void main()
{
fraction a(4,16),b(1,6),c(5),d;
cout<<"初始值:\n";
a.disp();
b.disp();
c.disp();
d.disp();
cout<<"a+b的结果:\n";
c=a+b;
c.disp();
cout<<"a+2的结果:\n";
c=a+6;
c.disp();
d=2+a;
d.disp();

}

编译报错:
F:\C++习题集\practice.cpp(2737) : error C2804: binary 'operator -' has too many parameters
F:\C++习题集\practice.cpp(2804) : error C2677: binary '+' : no global operator defined which takes type 'class fraction' (or there is no acceptable conversion)
执行 cl.exe 时出错.

有个疑问是,为什么不能这样定义fraction fraction::operator-(long dt1,fraction &dt2)
呢,如果不能这样定义,定义成 friend fraction operator+(long dt1,fraction &dt2)为什么 又可以了呢?谢谢。。

文章评论

C++初学遇到的有关问题,请。
老程序员的下场
C++初学遇到的有关问题,请。
Web开发者需具备的8个好习惯
C++初学遇到的有关问题,请。
Java 与 .NET 的平台发展之争
C++初学遇到的有关问题,请。
旅行,写作,编程
C++初学遇到的有关问题,请。
鲜为人知的编程真相
C++初学遇到的有关问题,请。
程序员和编码员之间的区别
C++初学遇到的有关问题,请。
Web开发人员为什么越来越懒了?
C++初学遇到的有关问题,请。
10个调试和排错的小建议
C++初学遇到的有关问题,请。
程序员眼里IE浏览器是什么样的
C++初学遇到的有关问题,请。
当下全球最炙手可热的八位少年创业者
C++初学遇到的有关问题,请。
科技史上最臭名昭著的13大罪犯
C++初学遇到的有关问题,请。
亲爱的项目经理,我恨你
C++初学遇到的有关问题,请。
60个开发者不容错过的免费资源库
C++初学遇到的有关问题,请。
写给自己也写给你 自己到底该何去何从
C++初学遇到的有关问题,请。
如何成为一名黑客
C++初学遇到的有关问题,请。
我是如何打败拖延症的
C++初学遇到的有关问题,请。
聊聊HTTPS和SSL/TLS协议
C++初学遇到的有关问题,请。
程序猿的崛起——Growth Hacker
C++初学遇到的有关问题,请。
中美印日四国程序员比较
C++初学遇到的有关问题,请。
什么才是优秀的用户界面设计
C++初学遇到的有关问题,请。
初级 vs 高级开发者 哪个性价比更高?
C++初学遇到的有关问题,请。
“懒”出效率是程序员的美德
C++初学遇到的有关问题,请。
不懂技术不要对懂技术的人说这很容易实现
C++初学遇到的有关问题,请。
每天工作4小时的程序员
C++初学遇到的有关问题,请。
程序员都该阅读的书
C++初学遇到的有关问题,请。
程序员的鄙视链
C++初学遇到的有关问题,请。
为什么程序员都是夜猫子
C++初学遇到的有关问题,请。
Java程序员必看电影
C++初学遇到的有关问题,请。
程序员周末都喜欢做什么?
C++初学遇到的有关问题,请。
代码女神横空出世
C++初学遇到的有关问题,请。
程序员最害怕的5件事 你中招了吗?
C++初学遇到的有关问题,请。
那些争议最大的编程观点
C++初学遇到的有关问题,请。
团队中“技术大拿”并非越多越好
C++初学遇到的有关问题,请。
为啥Android手机总会越用越慢?
C++初学遇到的有关问题,请。
老美怎么看待阿里赴美上市
C++初学遇到的有关问题,请。
5款最佳正则表达式编辑调试器
C++初学遇到的有关问题,请。
程序员必看的十大电影
C++初学遇到的有关问题,请。
程序员应该关注的一些事儿
C++初学遇到的有关问题,请。
我的丈夫是个程序员
C++初学遇到的有关问题,请。
我跳槽是因为他们的显示器更大
C++初学遇到的有关问题,请。
漫画:程序员的工作
C++初学遇到的有关问题,请。
看13位CEO、创始人和高管如何提高工作效率
C++初学遇到的有关问题,请。
如何区分一个程序员是“老手“还是“新手“?
C++初学遇到的有关问题,请。
10个帮程序员减压放松的网站
C++初学遇到的有关问题,请。
程序员的一天:一寸光阴一寸金