introduction explicit 构造函数,防止意外的类型转换(?)要区分复制构造和赋值,主要看左值是否正在构造新对象按值传参必然要复制构造,所以自定义类型使用const& Accustom yourself to C++