【发布时间】:2011-01-14 20:33:49
【问题描述】:
我喜欢在堆栈上声明变量,尤其是在使用标准容器时。每次避免new,就可以避免潜在的内存泄漏。
我也喜欢使用多态性,即带有虚函数的类层次结构。但是,这些功能似乎有点不兼容:你不能这样做:
std::vector<BaseType> vec;
vec.push_back(DerivedType())
或者至少看起来你会失去你推入的对象的多态性。
那么,有什么方法可以协调基于堆栈的内存管理和虚拟函数的使用?
【问题讨论】:
标签: c++ oop memory-management stack