学习C++ Primer 笔记 3
来源:互联网 发布:华龙一号 知乎 编辑:程序博客网 时间:2024/05/16 01:31
一口气看到了第四章,自以为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)
这个问题先提出来 以后解决
#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)
这个问题先提出来 以后解决
- C++PRIMER学习笔记
- c++primer学习笔记
- c++primer学习笔记
- C++primer学习笔记
- c++primer 学习笔记
- C++Primer 学习笔记
- c++primer学习笔记
- C++Primer学习笔记
- C++PRIMER 学习笔记
- C++Primer学习笔记
- C++Primer学习笔记
- C++Primer学习笔记
- c++primer学习笔记
- C++Primer学习笔记(3)
- C++Primer Plus学习笔记
- linux & C++Primer 学习笔记
- c ++Primer学习笔记之一
- 学习《c++primer》笔记一
- C# 没有动态数组,实现动态数组 && local copy(dll)
- C 编程最佳实践----转自IBM developerworks
- 经典正则表达式
- basic_string
- 学位翻译
- 学习C++ Primer 笔记 3
- JavaScript学习笔记3
- 子网划分方法
- 一首歌一个故事 -- 忘记你我做不到
- Raúl in El Larguero ( 04-04-2006)
- 写给27岁以上的单身男性的100条忠告
- How To Install Custom Component in Delphi (into existing package).
- 一篇关于CString类型转换的文章
- ASP.NET对SQLSERVER数据库增改删操作