什么是正确的做法?我知道如果容器是基类值类型,那么存储的派生对象是"切片".如果container是派生类类型,则无法存储基类对象.对?
如果要使用指针,则无法使用auto_ptr,因为它具有复制语义问题.shared_ptr是解决此问题的唯一解决方案吗?
任何人都可以提供更多细节,示例代码或解决此问题的在线文章吗?这应该是一个很常见的问题,但是我没有在教科书或网上找到太多关于它的信息.
提前致谢.
顺便说一下,我只搜索unique_ptr.它似乎不支持复制语义.因此,在STL中使用auto_ptr只是安全吗?但是由于缺少复制语义,许多STL操作或算法不能用于unique_ptr的容器?
如果您想要多态行为(并且您确实需要它),那么您必须使用指针或引用.许多地方都有很好的记录.
由于您不能使用引用容器,因此必须使用指针容器.
现在,你可以用你认为合适的任何类型的指针:unique_ptr,shared_ptr或原始指针.