c++ explicit 关键字
explicit
的作用是用来声明构造函数要求是显示调用的,好处在于不会由于调用隐式调用构造函数引起非预期行为,而编译没有提醒报错
例子:
#include <iostream>
using namespace std;
class Point{
public:
int x,y;
Point(int x_): x(x_){}
};
void display(const Point& p){
cout<<"("<<p.x<<","<<p.y<<")"<<endl;
}
int main(){
display(1);
Point p =2;
display(p);
return 0;
}
如果Point
构造函数是explicit,则main下面的语句会提示报错,编译无法通过