容器中对象为指针时的注意事项

容器中对象为指针时的注意事项

1.容器在销毁时,会自动帮你销毁容器中所存储的额对象。
2.当容器中对象是指针的时候,容器销毁的时候,也会帮你销毁容器中的对象-指针。
3.由于容器销毁销毁的只是指针值,而非指针所指对象。则会出现资源泄露
解决方法:
1.用智能指针auto_ptr,shared_ptr来代替指针。思想:用类对象来管理指针的创建销毁。构造函数创建指针,析构函数销毁指针所指对象。
2.显示销毁指针所指对象,使用for_each,结合函数对象。可以实现异常安全
注:刚看了<<effective stl>>条款8,里面说如果使用auto_ptr作为容器对象是愚蠢的行为。所以上面的方法1,用shared_ptr而不能用auto_ptr。
      主要是因为auto_ptr在拷贝的时候有一个所有权的转移。

你可能感兴趣的:(容器中对象为指针时的注意事项)