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

 

你可能感兴趣的:(C++)