本文主要是介绍C++禁止隐式转换之explicit用法(八),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.隐式类型转换
#include <iostream>
using namespace std;
class Test
{public: Test(int num){cout << __FUNCTION__ << "(), num = " << num << endl;}
}int main(){//编译器自动将整型“隐式转换”为Test类对象Test obj = 10;/*
等同于:Test t1(10);Test t2 = t1;
*/return 0;
}
2.禁止隐式转换关键字:explicit
#include <iostream>
using namespace std;
class Test{
public://explicit(显式)构造函数//explicit Test(int n){cout << __FUNCTION__ << "(), n = " << n << endl;}
};int main(){//Test t1 = 222;//编译错误,不能隐式调用其构造函数Test t2(12);//显式调用成功return 0;
}
这篇关于C++禁止隐式转换之explicit用法(八)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!