看很多代码时,经常发现构造器会带有explicit的,大概意思是显示声明构造器,不能隐式转换。
include <iostream>
using namespace std;
class Test1
{
public :
Test1(int num):n(num){}
private:
int n;
};
class Test2
{
public :
explicit Test2(int num):n(num){}
private:
int n;
};
int main()
{
Test1 t1 = 12;
Test2 t2(13);
Test2 t3 = 14; //编译错误
return 0;
}
网友评论