参考C++那些事-光城大佬的网站
参考C++ explicit关键字详解
explicit 修饰构造函数时,可以防止隐式转换和复制初始化
explicit 修饰转换函数时,可以防止隐式转换,但按语境转换除外
//inline.h #ifndef _A class A { public: // 显示声明构造函数 explicit A(int x, int y = 0); const int a; int b; }; #endif
//main.cpp #include#include "inline.h" using namespace std; A::A(int x, int y) : a(x), b(y) {} // const修饰后为常对象,不能对成员进行修改 *** 作,只能访问 void display(const A &a) { cout << a.b << " " << a.a << endl; } int main() { // 加explict后,只能显示调用 display(A(1, 3)); // 隐式调用 display(1); 将int隐式转换为A }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)