, 否则声明为explict
C++有大量未定义(undefined)的行为, 一定要小心....这些行为结果并非报错, 而是与编译器和执行环境相关的无法估计的结果
"接口"通常指函数的签名
1 让自己习惯C++
1 视C++为一个语言联邦
将C++看作是以多个相关语言组成的结合体而不是一个关系紧密的单一语言...使用初值列初始化的时候还要注意成员依赖的问题, 时刻记得: 成员在初值列中初始化的顺序至于其在类内的声明顺序相同, 为了防止混乱我们应该也按照声明顺序在初值列进行排列
以上可能导致初值列本身产生重复,...8 别让异常逃离析构函数
由于在C++中两个异常同时存在会导致未定义行为, 因此我们不应该让析构函数上报异常, 这是因为析构函数是会被自动调用的, 当一个对象析构而抛出异常时, 同个作用域的其它对象的析构也会被自动执行..., 此时有可能继续抛出异常导致多异常未定义
因此我们应该将所有析构函数用try-catch包裹起来, 可以选择吞掉异常然后继续执行, 也可选择记录后结束程序
更合理的方法是额外写一个close函数, 用户可以主动调用