C++ 学习笔记
C++ 隐式构造 & explicit 关键字
概述
隐式构造
- 主要用于简化代码
- 个人觉得还是少用,这儿就当记录一下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| #include <string> #include <iostream>
class Entity { private: std::string name; int age; public: Entity(const std::string& n) : name(n), age(-1) {}
Entity(int age) : name("Unknown"), age(age) {}
const std::string& GetName() const { return name; }
int GetAge() const { return age; } };
void PrintEntity(const Entity& e) { std::cout << e.GetName() << std::endl; std::cout << e.GetAge() << std::endl; }
int main() { PrintEntity(2); PrintEntity(Entity(2));
Entity a("qinhan"); Entity aa = std::string("qinhan");
Entity b(22); Entity b1 = 22;
return 0; }
|
explicit 关键字
- 关键字放在
构造函数
的前面
- 表示改构造函数不可以用于
隐式构造