-2

昨日、私は自分のグローバルをより良く見せようとしていました、そして私はこれを思いつきました。

// Event.hpp

namespace GEngine{
    namespace Event{
        struct _Mouse{
            int mouse_x;
            int mouse_y;
        };
        extern GEngine::Event::_Mouse Mouse; // Inside
    }
}

// Main.cpp

// セットする

GEngine::Event::Mouse.mouse_x = 100;
GEngine::Event::Mouse.mouse_y = 50;

// 得る

int foo = GEngine::Event::Mouse.mouse_x;

---- vs -----

namespace GEngine{
    namespace Event{
        struct _Mouse{
            int mouse_x;
            int mouse_y;
        };
    }
}

extern GEngine::Event::_Mouse Mouse; // Outside

....。

// Main.cpp

// 得る

Mouse.mouse_x = 100;
Mouse.mouse_y = 50;

// セットする

int foo = Mouse.mouse_x;

どのコーディングスタイルを選びますか?単純さよりも明確か、またはその逆ですか?

そしてもう少し正確に。グローバル変数にGEngine::Event :: Mouse.mouse_xまたはMouse.mouse_xという名前を付けますか?

4

1 に答える 1

0

短い答え。

どちらのソリューションも、優れた C++ コード スタイルを示していません。質問に答えるために、アクセスしているメンバーは、格納されているのと同じ名前空間階層によって完全に修飾されている必要があります。

長い答え。

  • グローバルは定数でなければなりません。
  • アクセサー メソッドを持つプライベート メンバーが機能する場合は、代わりにそれを使用する必要があります。
  • グローバルは、ほとんどの状況で悪い考えです。
  • グローバル定数を公開するために受け入れられている方法は、どちらのソリューションにも示されていません。

スタイルに関するいくつかの優れたガイド

于 2012-05-10T21:35:10.703 に答える