C++ 默认为d';tor对于复向量来说足够了吗?

C++ 默认为d';tor对于复向量来说足够了吗?,c++,class,inheritance,C++,Class,Inheritance,如果我的班级有: std::vector<std::shared_ptr<Animal>> table; std::向量表; 虽然Animal是一个由其他人继承的抽象类,但默认的d'tor是否足够 我知道这对于向量本身就足够了,但是向量中包含的内容呢?作为一种良好的实践,您可以在动物中使用虚拟析构函数: virtual ~Animal(){} 通过一个虚拟析构函数 归功于 在这种情况下,您不必担心内存管理。我这样做了,但是我的类(上面写的)的默认任务已经足够

如果我的班级有:

    std::vector<std::shared_ptr<Animal>> table;
std::向量表;
虽然
Animal
是一个由其他人继承的抽象类,但默认的d'tor是否足够


我知道这对于向量本身就足够了,但是向量中包含的内容呢?

作为一种良好的实践,您可以在
动物中使用虚拟析构函数:

virtual ~Animal(){}
通过一个虚拟析构函数

归功于


在这种情况下,您不必担心内存管理。

我这样做了,但是我的类(上面写的)的默认任务已经足够了,对吗?是的,足够了,虚拟指针可以管理自己的内存。@BigSur每个帖子一个问题please@BigSur规则的存在是有原因的,虽然这是一个很好的实践,但不需要虚拟析构函数来正确使用多态性和
共享的\u ptr
。请看:为了清楚起见,我们讨论的是包含
表的类的析构函数,而不是
动物的析构函数,是吗?请不要通过附加不相关的新问题来重载问题<代码>表格
将使用
大小
默认初始化
共享\u ptr
s进行初始化。是@user45813011“将使用大小默认初始化共享\u ptr进行初始化”是什么意思?我怎么知道默认值是什么?我在谷歌上搜索了一下,什么也没找到。我把你的问题退回去了。每个帖子应该只问一个问题,在收到答案后,你不应该改变你的问题。