gpt4 book ai didi

c++ - C++ 中指向指针的替代方法?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:38:05 24 4
gpt4 key购买 nike

我发现自己在游戏中的几个地方想要在我的设计中使用指针对指针。例如,我有一个 OpenGLRenderer 类,它在给定顶点/索引/纹理坐标数据、给定 Material Prop 等的情况下创建网格,然后是一个缓存网格/ Material 的类 ResourceManifest从文件加载这些资源之一后,使用 OpenGLRenderer 创建它的一个实例。所以那里有耦合。

我通常喜欢在编码时使用 RAII 设计,这使我想到以下关系:

ResourceManifest(OpenGLRenderer** renderer);

因为当 OpenGL 上下文被拆除并且所有 OpenGL 状态特定的东西需要重新初始化时,例如重新创建窗口时,我只是重新创建 OpenGLRenderer 并让构造函数/析构函数执行所有的工作和使用它的 ResourceManifest 永远不会更明智。

我想知道的是,这是否足以证明使用普通的旧指针到指针的合理性,是否还有更现代的工具或技术可用?例如,我一直在查看各种 smart_ptr,但它们并没有解决手头的问题,因为我想在不传递新的 smart_ptr 的情况下重新创建托管对象。

最佳答案

正如其他人已经说过的,您可以引用智能指针。

但是,如果您还想提供智能指针之外的功能,您可以将您的代码变成一个迭代器,尤其是当底层数据结构不同时。同样,这是您将如何使用指针指向指针的问题。然后,您最终使用的任何接口(interface)本身都可以包装在智能指针中。

关于c++ - C++ 中指向指针的替代方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17981569/

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