我有一个名为Manager
的类模板,负责添加,查询和删除对象。这是头文件:
template<class T>
class Manager
{
public:
Manager() {}
~Manager();
void addObject(const std::string &name, T object);
void removeObject(const std::string &name);
void removeAllObjects();
unsigned int getNumObjects() const;
T getObject(const std::string &name) const;
private:
std::unordered_map<std::string, T> _objects; //name, object
};
现在说我有一个int指针的Manager对象,并添加堆分配的整数,如myManager.addObject("heap allocated", new int(3))
是否可以在Manager::removeObject()
中知道每个插入的对象是否都是堆分配的,那么我知道是否需要调用delete
?