条款17:以独立语句将New对象放置入智能指针。
1、以独立语句将newed对象放置入智能指针内,如果不这样做,一旦异常被抛出,有可能导致难以察觉的资源泄露。
void name(shared_ptr<管理对象类型>(new 管理对象类型),其它函数)),New被分配内存不一定马上放入管理对象,因为有其它函数干扰,这不是独立语句。
条款18:让接口容易被正确使用,不易被误用。
1、好的接口很容易被正确使用,不容易被误用。你应该在你的所有接口中努力达成这些性质。
2、“促进正确使用”的办法包括接口的一致性,与内置类型行为的兼容。
3、“阻止误用“的方法包括建立新类型,限制类型上的操作(年月日,函数接口代替对象多文件初始化),束缚对象值(合理范围),以及消除客户的资源管理责任。
4、shared_ptr指针支持定制类型删除器。这可以防范DLL问题,可被用来自动解除互斥锁(条款14)等等。
条款19:设计class犹如设计type
1、新type的对象应该如何被创建和销毁--(构造函数和析构函数)【内存分配函数和释放函数】
2、类型的初始化和对象的赋值有怎么样的差异?
3、新类型如果以值传递,意味着什么?
4、什么是新类型的合法值?
5、新类型需要配合某个继承体系吗?(virtual)
6、你的新类型需要怎么样的转换(explicit)(隐式显式转换函数)
7、什么样的操作符合函数对新类型是合理的。
8、什么样的标准函数应该驳回?
9、谁该取用新类型的成员(private,public,protect)
10、什么是新类型的未声明接口?(效率,异常)
11、你的新类型有多么一般化(templateclass,class)
12、你真的需要一个新类型吗(用多个函数或者template替代)
时间: 2024-10-27 02:26:14