Loading

c++ explicit 关键字

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下面的语句会提示报错,编译无法通过

posted @ 2021-04-27 12:46  fridayfang  阅读(24)  评论(0编辑  收藏  举报