这些行为结果并非报错, 而是与编译器和执行环境相关的无法估计的结果
"接口"通常指函数的签名
1 让自己习惯C++
1 视C++为一个语言联邦
将C++看作是以多个相关语言组成的结合体而不是一个关系紧密的单一语言..., 因为它属于预处理器, 是运行在编译阶段之前的
现代C++不建议使用预处理器, 因为它无法进行复杂的计算, 只能机械地对代码进行预处理, 且在处理后就与编译器断开了联系, 无法debug
尽量别用#define...这种方法的缺点是如果new的时候发生异常, 此时当前对象的指针已经被释放, 那么这个对象就会留下一个错误的指针
备份指针: 在一开始对指针进行备份, 然后new一个复制的内存, 当没有异常发生时才去释放原先的内存..., 参考unique_ptr
对于需要保留资源在多个对象手上的情况, 参考shared_ptr设置底层的引用计数器, 额外写一个删除器(deleter)在引用计数为0时调用
复制资源管理对象的时候要确保是深拷贝的..., 同时需要维护好各自的引用计数和析构
copy函数会被编译器自动创建, 记得注意
15 在资源管理器中提供对原始资源的访问
很多函数API要求访问原始指针, 因此自己写的资源管理器一定要写好访问原始指针的接口方法