#include <iostream>
using namespace std;
/*
explicit关键字
*/
class Person {
public:
Person(int age) :age(age) {};
int getAge() {
return age;
}
private:
int age;
};
class Animal {
public:
explicit Animal(int age) :age(age) {};
int getAge() {
return age;
}
private:
int age;
};
int main()
{
Person person = 4; //没有explicit 可以发生隐式转换 等价于Person person(4);
cout << person.getAge() << endl;
//Animal animal = 5; 有explicit 不能隐式转换
Animal animal(4); //只能通过这种方法来调用构造函数
cout << animal.getAge() << endl;
return 0;
}
C++ explicit关键字作用
最新推荐文章于 2019-06-19 18:10:09 发布