我正在写一个lib和一个演示项目.该项目并不关心我使用的lib版本(我可以使用sdl,directx或我喜欢的任何版本作为gfx后端).为了得到我做的对象
Obj *obj = libname_newDevice();
现在,我应该使用删除还是应该obj->deleteMe();
?我问,因为我不是在做新的所以我不应该删除?
我有obj->create(theType);
一个带有Obj接口的类.我真正的问题是我需要一个libname_deleteDevice();
或者obj->deleteMe()
很好,因为我在界面中有一个deleteMe?
既然你正在抽象内部的创造libname_newDevice()
(我不得不说这不是一个好方法),你应该使用类似的东西来销毁libname_destroyDevice (obj)
.
正如Martin的评论所暗示的那样,最好将它们放在自定义类的构造函数和析构函数中,您只需要在堆栈上创建,编译器将负责其余的工作.