我有一个C++类(在一个dll项目中),其成员变量是boost :: shared_ptrs到其他类的对象。将它们分配给类构造函数还是有一个单独的init()函数可以实现这一点,这会更好吗?在构造函数中分配共享ptrs(boost),单元测试
我假设内部boost :: shared_ptr指针T的默认值为NULL。所以如果我在构造函数里什么都不做,boost :: shared_ptr的get()在调用Init()函数之前返回NULL。
另外,如果在赋值语句中有新的内存分配问题,应该如何捕获异常(在Init中)还是很好地告诉调用者这个Init()来捕获异常? boost :: shared_ptr a(new T);
是否有标准方法来模拟单元测试中的内存分配异常?并查看所有对象已正确取消分配
感谢您的回答罗宾,我应该在单元测试时使用引用计数。我也喜欢创建存根 – Kamal 2010-02-27 15:05:19
@Kamal的想法,如果任何其他初始化成员抛出,编译器将调用任何初始化成员的析构函数。 – 2010-02-27 15:23:35