C++中explicit

【explicit】

1.用于抑制隐式转换,即:

X x = 12; // error
X x(12); // ok

2.只对一个实参的构造函数有效,但是,可以用多有多个实参的构造函数,目前没有意义;

class X {
public:
  explicit X(int x);
  explicit X(int x, int y);
  int ex;
  int ey;
};

3.只能在类定义内部使用,在类外部出现时会发生——编译错误:

class X {
public:
    ...
    explicit X(int x); 
    ...
};
explicit X::X(int x) {} // error
原文地址:https://www.cnblogs.com/luo630/p/4187533.html