gpt4 book ai didi

c++ - 我可以在不使用 new 关键字的情况下以某种方式实现它吗? C++

转载 作者:行者123 更新时间:2023-11-30 02:53:32 27 4
gpt4 key购买 nike

有没有一种方法可以在不使用 new 的情况下实现它?关键词?

void World::generateChunk(Coordinate coord) {
if(loadedChunks[coord])
delete loadedChunks[coord];
loadedChunks[coord] = new Chunk(coord);
loadedChunks[coord]->generate();
}

loadedChunks 是一个 std::map<Coordinate, Chunk*> .

最佳答案

是的,通过使用:

std::map<Coordinate, Chunk>

World::generateChunk() 它们会变成:

void World::generateChunk(Coordinate coord)
{
loadedChunks[coord] = Chunk(coord);
loadedChunks[coord].generate();
}

请注意这一点的含义。由于现有对象已分配给,因此不再有析构函数调用。并且多态性不再起作用(您将无法在 loadedChunks 中存储 Chunk 子类。)此外,至少 loadedChunks.size() 对象将永远存在;它们不可删除。

Chunk 还必须满足标准容器类的标准,例如可复制构造、可分配等。并确保这些操作正常工作(例如,您需要确定是否需要深拷贝或浅拷贝。)

关于c++ - 我可以在不使用 new 关键字的情况下以某种方式实现它吗? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17930844/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com