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

问题描述

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,请问哪里出错了,为什么会有这个值,谢谢!

解决方案

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

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

解决方案二:

C++类型转换函数
C++ 中的类型转换函数
c++类型转换函数

时间: 2024-10-31 06:20:52

c++-C++中类型转换函数问题的相关文章

Sql Server函数全解&lt;三&gt;数据类型转换函数和文本图像函数

原文:Sql Server函数全解<三>数据类型转换函数和文本图像函数 一:数据类型转换函数 在同时处理不同数据类型的值时,SQL Server一般会自动进行隐士类型转换.对于数据类型相近的值是有效的,比如int和float,但是对于其它数据类型,例如整型和字符类型,隐士转换就无法实现了,此时必须使用显示转换.为了实现这种显示转换,T-SQL提供了两个显示转换函数,分别是CAST和CONVERT函数. CAST(x AS type)和CONVERT(type,x)函数将一个类型的值转换为另一个

3.Oracle中的函数

 1.字符串函数:    <1>转换函数:      lower函数:select lower(ename) from emp;       upper函数:select * from emp where ename=upper('king');      initcap函数:(将第一个字母大写)select initcap(ename)from emp;     <2>字符串操作函数:      concat函数:(连接字符):select concat(ename,job)fr

深度探究C++中的函数重载的用法_C 语言

C++ 允许同一范围内具有相同名称的多个函数的规范.这些函数称为重载函数,"重载"中对其进行了详细介绍.利用重载函数,程序员可以根据参数的类型和数量为函数提供不同的语义. 例如,采用字符串(或 char *)参数的 print 函数执行的任务与采用"双精度"类型的参数的函数执行的任务截然不同.重载允许通用命名并使程序员无需创建名称,例如 print_sz 或 print_d.下表显示了 C++ 使用函数声明的哪些部分来区分同一范围内具有相同名称的函数组.重载注意事项

简单掌握C++中的函数模板_C 语言

1.函数模板的声明和模板函数的生成 1.1函数模板的声明函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函数的函数体重复设计.它的最大特点是把函数使用的数据类型作为参数. 函数模板的声明形式为: template<typename 数据类型参数标识符> <返回类型><函数名>(参数表) { 函数体 } 其中,template是定义模板函数的关键字:template后面的尖括号不能省略:typename(或class)是声明数据类型参数标识符的关键字,用

《C++语言基础》参考——转换构造函数与类型转换函数

返回:贺老师课程教学链接 下面的程序,想在main函数中要完成实数加复数.复数加实数,不可以.编译下面的程序出现错误,就是因为没有提供对应类型数据的运算符重载函数. #include <iostream> using namespace std; class Complex { public: Complex():real(0), imag(0){} Complex(double r,double i):real(r), imag(i){} Complex operator+(const Co

python中enumerate函数用法实例分析

  本文实例讲述了python中enumerate函数用法.分享给大家供大家参考.具体分析如下: 今日发现一个新函数 enumerate .一般情况下对一个列表或数组既要遍历索引又要遍历元素时,会这样写: ? 1 2 for i in range (0,len(list)): print i ,list[i] 但是这种方法有些累赘,使用内置enumerrate函数会有更加直接,优美的做法,先看看enumerate的定义: ? 1 2 3 4 5 6 7 def enumerate(collect

位图显示-MFC中OnPaint函数显示BMP图片的问题

问题描述 MFC中OnPaint函数显示BMP图片的问题 为什么我在MFC对话框中,在OnPaint函数中加入以下代码,BMP图像不能显示啊~~· BITMAP bm; CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP1); CDC memdc; CDC dc; memdc.CreateCompatibleDC(&dc);/ bmp.GetBitmap(&bm); CBitmap *bmpold=memdc.SelectObject(&bmp);/ dc

Excel中sumif函数的怎么使用

  Excel中sumif函数的使用方法 Excel中sumif函数的用法是根据指定条件对若干单元格.区域或引用求和. SUMIF函数的参数:range,criteria,sum_range 1)Range为条件区域,用于条件判断的单元格区域. 2)Criteria是求和条件,由数字.逻辑表达式等组成的判定条件.为确定哪些单元格将被相加求和的条件,其形式可以为数字.表达式或文 本.例如,条件可以表示为 32."32".">32" 或 "apples&

Excel中sumif函数用法

今天接着给大家来关于Excel中sumif函数用法的操作技巧,那么就有人问了,学会了Excel中sumif函数用法有什么作用呢,不要急,下面就请听小编一一给大家进行详细的讲解: 一.SUMIF函数介绍 SUMIF函数根据指定条件对若干单元格求和,该条件可以是数值.文本或表达式,可以应用在人事.工资和成绩统计中. 二.SUMIF函数用法 sumif函数语法是:SUMIF(range,criteria,sum_range) 第一个参数:Range为条件区域,用于条件判断的单元格区域. 第二个参数:C