将指针类参数复制到类成员的好处是什么?

时间:2014-11-10 10:05:35

标签: c++ pointers directx directx-9 member-pointers

我有一个播放器类,它使用我的DirectX Graphics类来创建曲面并绘制精灵。

我将图形类作为指向播放器类方法的指针传递:

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

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

所以这个:

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

vs this:

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

我知道有一个m_pGraphics指针允许我在同一个类中再次重用指针,比如我的绘图方法,但无论如何我都会调用播放器类中的方法,所以我不能只是不断地将指针传递过来再次?

1 个答案:

答案 0 :(得分:0)

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

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

您需要确保指向Graphics对象的成员指针在使用时仍然有效。它仍然是正确的Graphics对象,它还活着吗?如果每次没有这种复杂情况时都传递指针。