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

operator+= 重载的有关问题吧

2012-02-12 
operator+ 重载的问题吧!在线等#include iostream#include complexusingnamespacestdinlinecomplex

operator+= 重载的问题吧!在线等
#include <iostream>
#include <complex>
using   namespace   std;

inline   complex <double> &
operator+=(   complex <double> &cval,   double   dval   )
{
return   cval   +=   complex <double> (dval);
}
inline   complex <double> &
operator-=(   complex <double> &cval,   double   dval   )
{
return   cval   -=complex <double> (dval);
}
inline   complex <double> &
operator/=(   complex <double> &cval,   double   dval   )
{
return   cval   /=complex <double> (dval);
}
inline   complex <double> &
operator*=(   complex <double> &cval,   double   dval   )
{
return   cval   *=complex <double> (dval);
}
int   main()
{
using   namespace   std;
complex <double>   cval(4.0,   1.0);

cout < <cval < <endl;
cval+=1;
cout < <cval < <endl;
cval-=1;
cout < <cval < <endl;
cval*=1;
cout < <cval < <endl;
cval/=1;
cout < <cval < <endl;
return   0;
}
VS运行出现错误如下:只贴出一个,其他3个雷同,
:\program_shou\3166\3166\dwfe.cpp(31)   :   error   C2593:   “operator   +=”不明确
                d:\205_zhyeb\vc\include\complex(686):   可能是“std::complex <double> ::_Myt   &std::complex <double> ::operator   +=(const   std::complex <double> ::_Ty   &)”
                d:\program_shou\3166\3166\dwfe.cpp(6):   或“std::complex <double>   &operator   +=(std::complex <double>   &,double)”
                试图匹配参数列表“(std::complex <double> ,   int)”时

在VC运行   完全正常通过。
            请问大家这是为什么哈!~解释清楚点~!


[解决办法]
complex& operator+=(const T& rhs);
complex& operator-=(const T& rhs);
complex& operator*=(const T& rhs);
complex& operator/=(const T& rhs);

看见这几个没有,const的话,如果不是指针或引用的话,是不参与重载的

热点排行