我用的是cocos2dx。当我使用它的类时,我需要经常输入 cocos2d::
除非我输入 using namespace cocos2d;
。
如何避免必须一直重复命名空间?
最佳答案
有几种方法可以使用其他命名空间中的内容,而不必在每个实例上重复命名空间。
- 导入整个命名空间:
using namespace cocos2d;
您现在可以仅通过名称而不使用 namespace 前缀来使用该 namespace 的所有成员。这会污染您自己的命名空间,可能有很多名称(取决于导入的命名空间的内容),这可能是不可取的。 - 从该 namespace 导入单个名称:
using cocos2d::MyClassName;
这只会导入给定的名称。好处是你的命名空间没有被污染。缺点是您必须为要导入的每个 namespace 成员执行此操作。如果您只需要几个,那么这种方法就可以了。 - 创建命名空间别名:
namespace co = cocos2d;
现在可以引用cocos2d
的成员了命名空间就好像它们是co
的成员一样命名空间。 - 创建类型别名 (C++11 起):
using CoClass = cocos2d::MyClassName;
然后,您可以使用您选择的标识符来引用别名成员。当导入的类型隐藏了您自己的命名空间中的类型时,这尤其有用。
关于c++ - 如何避免在我的代码中频繁键入 namespace::overly?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18222658/