qjwlfxx 2015-08-02 08:38 采纳率: 33.3%
浏览 1588
已采纳

C++中类型转换函数问题

#include
using namespace std;
class Complex
{
public:
Complex(){ real = 0; imag = 0; }
Complex(double r, double i){ r = real; i = imag; }
operator double(){ return real; }
private:
double real;
double imag;
};

int main()
{
Complex c1(3, 4), c2(5, -10), c3;
double d;
d = 2.5 +c1;
cout << d << endl;
return 0;

}

这是《C++程序设计 》谭浩强版本P339的一个例子,为什么,我用VS2013运行后得到的是-9.25596e+061,请问哪里出错了,为什么会有这个值,谢谢!

  • 写回答

1条回答 默认 最新

  • threenewbee 2015-08-02 22:18
    关注

    Complex(double r, double i){ r = real; i = imag; }
    写反了
    Complex(double r, double i){ real = r; iimag = i; }

    另外谭浩强的垃圾书就不要看了。此人坑害中国学生20年,也算奇葩了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何实现从tello无人机上获取视频流,然后将获取的视频通过yolov5进行检测
  • ¥15 WPF使用Canvas绘制矢量图问题
  • ¥15 用三极管设计一个单管共射放大电路
  • ¥15 孟德尔随机化r语言运行问题
  • ¥15 pyinstaller编译的时候出现No module named 'imp'
  • ¥15 nirs_kit中打码怎么看(打码文件是csv格式)
  • ¥15 怎么把多于硬盘空间放到根目录下
  • ¥15 Matlab问题解答有两个问题
  • ¥15 LCD12864中文显示
  • ¥15 在使用CH341SER.EXE时不小心把所有驱动文件删除了怎么解决