C++关键字:explicit
#include "pch.h" #include <iostream> using namespace std; class BaseClass { public: BaseClass() {} /*explicit*/ BaseClass(int num) { std::cout << "构造函数时:" << Age << std::endl; Age = num; } ~BaseClass() { cout << "析构时:" << Age << endl; } private: int Age = 9; }; int main() { BaseClass bc;//此时为默认参数 cout << "地址:" << &bc << endl; bc = 10;//此时Age被改为10 cout << "地址:" << &bc << endl; }
由输出结果可以看出,bc=10;这一句隐式转换了类型,这回导致一些bug,为了防止这种难以发现的问题,最好在构造函数前使用explicit关键子