如果我的类(class)有:
std::vector<std::shared_ptr<Animal>> table;
虽然Animal
是一个可以被其他人继承的抽象类,但是默认d'tor是否足够?我知道 vector 本身就足够了,但是 vector 中包含什么呢?
最佳答案
您可以在Animal
中使用虚拟析构函数作为一种很好的做法:
virtual ~Animal(){}
虽然是虚拟析构函数is not really needed to properly use polymorphism when using shared_ptr
。归功于@NathanOliver's comment。
在这种情况下,您无需担心内存管理。
关于c++ - 默认d'tor是否足以用于复数 vector ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62584394/