-2

昨天我试图让我的全局变量看起来更好,我想出了这个。

// 事件.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;

---- 对 -----

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 回答