[基本] C++中隐式转换
来源:互联网 发布:淘宝店美人药妆害死人 编辑:程序博客网 时间:2024/04/30 03:26
在C或者C++语言当中,尝尝涉及到隐式转换问题:
我总结主要有以下几种情况:
1. 在混合类型的算术表达式中:
2.用一种类型的表达式赋值
代码
3.用一个表达式传递给一个函数调用
代码
4.函数返回值
C++内建类型(char,int,short,double etc.)对像之间默认含有隐式转换
5. C++用户定义类对象之间可以含有C++隐式转换
在C++除了以上的方式还有2种方式进行隐式转换:主要是通过在类里面定义转换函数可以将类类型转换为其他类型
这里用一个简单的例子说明一下:
代码
我总结主要有以下几种情况:
1. 在混合类型的算术表达式中:
int ival = 3; double dval = 3.1415 ival + dval; //ival 被提升为double 类型:3.0
2.用一种类型的表达式赋值
01
int
*pi = NULL;
// NULL(0)被转换成了int* 类型的空指针值
3.用一个表达式传递给一个函数调用
01
02
extern
double
sqrt
(
double
);
sqrt
(2);
//2被提升为double类型: 2.0
4.函数返回值
double difference(int ival1, int ival2) { return ival1 - ival2; //返回值被提升为double 类型. }
C++内建类型(char,int,short,double etc.)对像之间默认含有隐式转换
5. C++用户定义类对象之间可以含有C++隐式转换
void dosomething(A aObject); class A { public: A(int x = 0); } dosomething(20); // Ok 隐式转换
在C++除了以上的方式还有2种方式进行隐式转换:主要是通过在类里面定义转换函数可以将类类型转换为其他类型
这里用一个简单的例子说明一下:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class
Int{
private
:
int
value;
public
:
Int(){
value=
"0"
;
}
operator
int
()
const
{
return
value;
}
};
void
func(
int
i)
{
cout<<i<<endl;
}
void
main()
{
int
v
func(v);
v+= 6;
//error
cout << v;
}
- C基本数据类型转换
- C语言基本类型转换
- C语言基本数据类型转换
- [基本] C++中隐式转换
- C系基本类型数值转换
- C基本数据类型的转换顺序
- [C#] 如何将String类型转换成任意基本类型
- C语言的基本数据类型及数据类型转换
- [C#] 如何将String类型转换成任意基本类型
- Objective-c语法之基本数据类型转换&使用
- 总结c/c++中各种基本数据类型转换方法
- OC字符串和 C 语言基本数据类型的相互转换
- golang之cgo一---go与C基本类型转换
- C基本
- C基本
- 闲来无事,玩玩基本之基本!c/c++之 string或者char*转换为double的 atof !
- Java基本数据类型转换
- java基本数据类型转换
- 普通人读普通大学,不意味普通人生
- 查找两数之和等于给定值
- GET方法和POST方法的区别
- Cstyle的UEFI导读之Mass Storage Driver Stack
- C++ Lambda
- [基本] C++中隐式转换
- 黑马韩前成Linux从入门到精通の第九章Linux网络基础
- Ubuntu使用技巧
- 阅读《第31次中国互联网络发展状况统计报告》,对中国互联网发展趋势和特点的分析
- 设计模式推演——组合与继承
- [基本] 写一个程序辨别系统是大端还是小端程序
- OllyDBG 入门系列(二)-字串参考
- 重定向与跳转的区别
- poj 2533 最长上升子序列