gpt4 book ai didi

c++ - 让智能指针按特定顺序删除SDL组件

转载 作者:搜寻专家 更新时间:2023-10-31 02:22:51 27 4
gpt4 key购买 nike

好的,基本上,我有一个名为 SDL_Video_wrapper.h 的 SDL 包装器 header 。它包含两个包装器类:CWindowWrapCRendererWrap,位于名为 detail 的命名空间中。用户可以通过两个共享指针访问这些类,定义如下:

 using CWindow = std::shared_ptr<detail::CWindowWrap>;//types Here are hidden from the user ! 
using CRenderer = std::shared_ptr<detail::CRendererWrap>;

并且用户可以使用这两种方法创建那些 shared_ptr :

 CWindow construct_window(Window_properties p){
if (has_init_SDL_Video){
return std::make_shared<detail::CWindowWrap>(p.title, p.xPos, p.yPos, p.width, p.height, p.flags);
}
else
LOG("SDL_Wrapper", "Cannot construct Window : SDL hasn't been initialized !");
return nullptr;
}

和我的渲染器基本一样;vy

我有另一个名为 QUIT_All_Subsystems 的函数,它会关闭 SDL 中的所有内容。

所以,问题是我需要我的智能指针在调用 Quit_All_Subsytems 后自动 处理(我用 atexit(Quit_All_Subsystem) 自动调用它 )

最佳答案

通过提供的示例查看共享指针析构函数:http://www.cplusplus.com/reference/memory/shared_ptr/~shared_ptr/

希望对你有帮助

关于c++ - 让智能指针按特定顺序删除SDL组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29898567/

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