1

我有一个播放器类,它使用我的 DirectX 图形类来创建表面和绘制精灵。

我将图形类作为指向播放器类方法的指针传递,如下所示:

**game.cpp**
m_pPlayer->Init(Graphics* graphics);

在播放器类中,我的 Init 方法将指针传递给另一个指针方法。在播放器类中创建另一个图形指针并复制指针参数有什么好处吗?

所以这:

**player.cpp**
m_pSurface->Init(graphics, m_width, m_height);

与这个:

**player.cpp**
m_pGraphics = graphics;
m_pSurface->Init(m_pGraphics, m_width, m_height);

我知道拥有一个 m_pGraphics 指针可以让我在同一个类中再次重用指针,例如我的绘图方法,但我无论如何都在播放器类中调用该方法,所以我不能一遍又一遍地传递指针吗?

4

1 回答 1

0

这只是风格问题,不太可能对性能产生任何影响。复制指针非常便宜,我会把它留给编译器来优化。

如果大量player使用该Graphics对象,则将指针存储在成员变量中而不是一直传递它是合理的。它可能会使成员函数签名player更短,这很好。

您确实需要确保指向Graphics对象的成员指针在使用时保持有效。它仍然是正确的Graphics对象吗?它还活着吗?如果你每次都传递指针,你可能不会有这种并发症。

于 2014-11-10T11:09:09.647 回答