1

DirectX Graphics クラスを使用してサーフェスを作成し、スプライトを描画するプレーヤー クラスがあります。

次のように、グラフィックス クラスをプレーヤー クラス メソッドへのポインターとして渡します。

**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 に答える