, 每个开发者都应该学习STL
C++各个部分功能上有很大的重叠, 使用的时候要视乎自己使用目标来选用合适的分部
2 尽量以const, enum, inline 替换 #define
#define并不被视作语言的一部分...但是手动回收很不方便, 很容易忘记释放, 例如一个提早的return, 或者跳出的异常
最好的方法是通过在栈上分配的智能指针来管理对象, 因为智能指针是栈上分配的模板类, 所以会在控制流离开的时候自动调用析构里的..., 同时需要维护好各自的引用计数和析构
copy函数会被编译器自动创建, 记得注意
15 在资源管理器中提供对原始资源的访问
很多函数API要求访问原始指针, 因此自己写的资源管理器一定要写好访问原始指针的接口方法..., 然后再进行别的
4 设计与声明
18 让接口容易被正确使用, 不易被误用
理想上通过了定义的代码都应该能得到正确的结果, 出现问题应该属于我们的接口没有足够方便客户使用的原因
为了限制客户输入的元素类型...的设计
有以下几点一定要在创立前进行思考:
如何创建和销毁
初始化和赋值的区别
如果被按值传递的话会有什么区别
有哪些是"合法值"
需要继承/被继承么
需要哪些类型转换
需要哪些操作符
哪些编译器函数需要拒绝