运算符重载,两个参数不同时的一个问题
polynomial operator *(const float A,const polynomial &Poly1)
{
node* searchp1=new node;
node* searchp2=new node;
polynomial Poly2;
float coefficient;
int exponent;
searchp1=Poly1.Poly->next;
searchp2=Poly2.Poly;
while(searchp1!=NULL)
{
coefficient=A*searchp1->coe;
exponent=searchp1->exp;
Poly2.Insertnode(coefficient,exponent);
searchp1=searchp1->next;
}
return (Poly2);
}
[解决办法]
假定A是类, a = b + c (三个都是类对象)
两个参数都是类对象, 这样定义
A operator +(const A & a) const //实现 a = b + c
一个是参数是类对象,另外一个是别的类型,比如说 a = b + 5 或者 a = 5 + b
那么要这样定义
A operator +(int n) const //实现 a = b + 5
friend A operator +(int n, const A & a) {return a + n;} //实现 a = 5 + b