首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

运算符重载,两个参数不同时的一个有关问题

2012-06-18 
运算符重载,两个参数不同时的一个问题polynomial operator *(const float A,const polynomial &Poly1){nod

运算符重载,两个参数不同时的一个问题
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

热点排行