我有一个全局变量和一个函数,每次调用它时,它都会创建一个Myclass类型的对象,并在HashTable中插入一个指向该对象的指针。
因此,我希望每次调用“插入”时,它都会创建Myclass的新对象,为它创建一个指针,并将该指针存储到哈希表中。
类似的东西:
Myclass object;
void insert()
{
object.doSomething();
Myclass * ptr = &object;
HashTable.insert(ptr);
}
但是它不起作用,因为每次调用“插入”都会覆盖先前的对象。
答案 0 :(得分:0)
您永远不会创建新的Myclass
对象。每次调用insert()
时,您只会获得指向相同对象的相同指针。
答案 1 :(得分:0)
怎么样?
Myclass *object;
void insert()
{
object = new Myclass();
object->doSomething();
//Myclass * ptr = object;
HashTable.insert(object);
}
修改:
PS:请确保您遍历哈希表并删除所有指针,否则将有很多悬空的指针
说明
您需要确保每次调用object
时,代码都不会修改哈希表中的旧insert
。因此,我们将object
用作指针,并在每次调用方法insert
时实例化。