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 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题