构造函数的隐式类型转换

构造函数的隐式类型转换

explicit

对于接收单个参数的构造函数,还具有类型转换的作用。
接收单个参数的构造函数具体表现:

  1. 构造函数只有一个参数
  2. 构造函数有多个参数,除第一个参数没有默认值外,其余参数都有默认值
  3. 全缺省构造函数
1
2
3
4
5
6
...
My_class tmp_1(1);//构造函数
My_class tmp_2 = 2;//发生了类型转换
/*tmp2中,先用2构造了一个My_class的临时对象,临时对象再拷贝构造tmp2。
*/
...

隐式类型转换

但连续的构造,编译器一般都会优化。例如将上图情况改为直接的构造。

用explicit修饰构造函数,将会禁止构造函数的隐式转换。


构造函数的隐式类型转换
https://weihehe.top/2024/07/04/explicit关键字/
作者
weihehe
发布于
2024年7月4日
许可协议