C++11后加入了=delete操作, 让我们可以明确删除某些函数的生成
7 为多态基类声明virtual析构函数
对所有多态基类来说, 声明虚析构函数非常重要, 这是因为派生类如果被基类指针指着, 然后被..., 是先构造基类, 然后逐级向上构造的, 底层构造完成前, 派生类的相关变量都是未定义的....因此如果在构造函数中调用了虚函数, 那么会根据当前正在构造的类型来调用相应的虚函数版本, 而非派生类的版本...., 同时在日常中通过重载调用运算来模拟指针方便开发
隐式类型转换可以写, 比较自然, 但是有时有危险
更常见的情景是写一个显式的get函数来获取原始指针
牢记RAII类不是为了封装数据存在的, 而是为了给原始指针加上资源回收的功能..., 也就是由拷贝构造函数生成
因此如果只是简单地传入对象会浪费很多的构造/析构操作, 最好的做法是传const引用
传const是为了让调用的人放心传入, 同时传入引用还能避免对象切割问题(派生类传入声明为基类的参数时派生类会退化为基类