是否可以避免头文件中的命名空间样板?
我有一些不需要在全局命名空间中的帮助程序类,因此我想将它们放在自己的命名空间中。例如:
// Widget.h
namespace MyHelpers {
class Helper { ... };
}
class Foo {
void bar(MyHelpers::Helper *helper);
}
// Widget.cpp
using namespace MyHelpers;
Foo::bar(Helper *helper) { ... }
在.cpp文件中,可以直接引用Helper,而在.h文件中,则使用命名空间来引用。是否可以让头文件丢失“MyHelpers::”样板,同时仍然从全局命名空间保留 MyHelpers?
I have some helper classes that I don't want in the global namespace, so I want to put them in their own namespace. For example:
// Widget.h
namespace MyHelpers {
class Helper { ... };
}
class Foo {
void bar(MyHelpers::Helper *helper);
}
// Widget.cpp
using namespace MyHelpers;
Foo::bar(Helper *helper) { ... }
In in the .cpp file, Helper can be referenced directly, while in the .h file, it is referenced using the namespace. Is it possible to have the header file lose the "MyHelpers::" boilerplate, while still reserving MyHelpers from the global namespace?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您有很多这样的类型,请在 using 类声明中创建一个类型快捷方式:
If you have many of these, create a type shortcut inside the using class declaration:
一种替代方法是将辅助类嵌套在主类中。
像这样:
然后:
One alternative could be to nest the helper classes inside the main class.
Something like this:
Then: