explicit 关键字

发布时间 2023-10-21 18:41:14作者: zznic

c++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用

前提知识:关于有参构造函数的三种调用方法.

class Person{
public:
    Person(){
        cout << "no param constructor!" << endl;
        mAge = 0;
}
//有参构造函数
Person(int age){
    cout << "1 param constructor!" << endl;
    mAge = age;
}
//拷贝构造函数(复制构造函数) 使用另一个对象初始化本对象
Person(const Person& person){
    cout << "copy constructor!" << endl;
    mAge = person.mAge;
}
//打印年龄
void PrintPerson(){
    cout << "Age:" << mAge << endl;
}
private:
    int mAge;
};