Qt类构造函数中explicit修饰符的作用?
explicit是C++的语法关键字。
其功能是:其限定的其类的构造函数只能被显式调用
#include <iostream>
using namespace std;
class Class_1
{
private:
int num;
public:
/*普通构造函数*/
Class_1(int n)
{
num=n;
}
};
class Class_2
{
private:
int num;
public:
/*explicit(显式)构造函数*/
explicit Class_2(int n)
{
num=n;
}
};
int main()
{
Class_1 t1=12; //可以隐式调用其构造函数,成功
// Class_2 t2=12; //编译错误,不能隐式调用其构造函数
Class_2 t2(12); //构造函数只能显式调用
return 0;
}