2

所以我正在做我的第一个严肃的项目。

命名空间结构:

    • 数学
    • 物理
    • ...
    • 模拟

一个标题:

#ifndef EGG_PHYSICS_WORLD_HPP
#define EGG_PHYSICS_WORLD_HPP

namespace Egg {
namespace Physics {

class Body
{
public:
   Body();

   const Math::Vector2& GetPosition() const;

   /* ... */
};

} // namespace Physics
} // namespace Body

#endif // EGG_PHYSICS_WORLD_HPP

问题:

  • 整体上它是一个理智的组织吗?
  • 创建嵌套命名空间是一种好习惯吗?
  • 可以使用未完全指定的名称(例如。Math::Vector2)名称而不是名称空间::Egg::Math::Vector2中的名称吗?::Egg::Physics
  • 如果嵌套命名空间组织过度,是否可以使用单个命名空间但仍使用文件夹结构,例如。Egg::World 位于“Egg/Physics/World.hpp”?
4

1 回答 1

3

是的,你组织过度了。如果是应用程序代码,我通常根本不会使用命名空间。如果您将代码移动到可重用库,则将其包装到命名空间,而不是之前。使用在没有命名空间的情况下有意义的类名。

于 2013-02-27T21:17:38.820 回答