gpt4 book ai didi

c++ - 删除还是虚拟删除?

转载 作者:太空宇宙 更新时间:2023-11-04 14:35:32 24 4
gpt4 key购买 nike

我正在编写一个库和一个演示项目。该项目不关心我使用哪个版本的库(我可以使用 sdl、directx 或任何我喜欢的 gfx 后端)。为了得到我做的对象

Obj *obj = libname_newDevice();

现在,我应该使用 delete 还是应该使用 obj->deleteMe();?我问,因为我不完全是在做新的,所以我不应该做删除?

我有 obj->create(theType); 它返回一个带有 Obj 接口(interface)的类。我真正的问题是我是否需要一个 libname_deleteDevice(); 还是 obj->deleteMe() 可以,因为我在界面中有一个 deleteMe?

最佳答案

因为你在 libname_newDevice() 中抽象创建(我不得不说这不是一个好方法),你应该使用类似 libname_destroyDevice (obj).

正如 Martin 的评论所建议的,最好将它们放在自定义类的构造函数和析构函数中,您只需在堆栈上创建它们,编译器将处理其余部分。

关于c++ - 删除还是虚拟删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/284556/

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