学习C++ Primer 笔记 3

一口气看到了第四章,自以为C学过,所以关于表达式,赋值语句部分 能跳的就跳过了.可是在4.6复数操作符部分还是出现了问题:关于复数+= -= 操作符 的重载,在linux下编译总是出错!
#include<vector>
#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);
}
main()
{
        complex<double> cval(2.5,2.6);
        double dval =  2.0      ;
        cval -= 1;
        cout<<cval<<endl;
        cval *= 1;
        cout<<cval<<endl;
        cval /= 1;
        cout<<cval<<endl;
}

出错提示!

g++ bug.cpp
bug.cpp: In function ‘int main()’:
bug.cpp:23: error: ambiguous overload for ‘operator-=’ in ‘cval -= 1’
/usr/lib/gcc/i386-redhat-linux/4.0.0/../../../../include/c++/4.0.0/complex:1235: note: candidates are: std::complex<double>& std::complex<double>::operator-=(double)
bug.cpp:7: note:                 std::complex<double>& operator-=(std::complex<double>&, double)
bug.cpp:25: error: ambiguous overload for ‘operator*=’ in ‘cval *= 1’
/usr/lib/gcc/i386-redhat-linux/4.0.0/../../../../include/c++/4.0.0/complex:1242: note: candidates are: std::complex<double>& std::complex<double>::operator*=(double)
bug.cpp:11: note:                 std::complex<double>& operator*=(std::complex<double>&, double)
bug.cpp:27: error: ambiguous overload for ‘operator/=’ in ‘cval /= 1’
/usr/lib/gcc/i386-redhat-linux/4.0.0/../../../../include/c++/4.0.0/complex:1249: note: candidates are: std::complex<double>& std::complex<double>::operator/=(double)
bug.cpp:15: note:                 std::complex<double>& operator/=(std::complex<double>&, double)

这个问题先提出来 以后解决
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值