C++学习笔记————隐式转换
1.隐式转换:
C++中隐式转换包括:
标准转换:窄型=>宽型:int => double,char => int
数值计算:整数=>float,double
同类型 signed 和 unsigned 转换(bit转换)
浮点型=>整数型:可能会出现精度丢失和未知错误(转换后超出整数范围)
非基本类型转换:
bool型:true => 1,false => 0
0 => 任意指针 => void *
子类 * => 基类 *
2.类的隐式转换:
类有三种隐式转换:
单参数构造函数
赋值函数
类型转换函数
class A{
...};
class B{
...};
A a;
B b = a; //调用B构造函数
b = a; //调用B赋值函数
a = b; //调用B类型转换函数
单参数构造函数并非必须只有一个参数,而是可以多参数,但是至多一个参数没有默认值。
class A{
public:
A(int a = 0, int b = 1