C ++代码风格,清晰和简洁

时间:2012-05-10 21:17:29

标签: c++ struct namespaces

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

// 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吗?

1 个答案:

答案 0 :(得分:0)

答案简短。

两种解决方案都没有显示出良好的C ++代码风格。虽然要回答这个问题,但您访问的成员应该完全符合存储它们的命名空间层次结构。

答案很长。

  • 全局变量应该是常量。
  • 如果具有访问者方法的私有成员可以使用,那么应该使用它。
  • 在大多数情况下,全局都是个坏主意。
  • 公开全局常量的公认方法未在任何一种解决方案中表示。

一些关于风格的好指南