c++ - 如何避免在我的代码中频繁键入 namespace::overly?

标签 c++ cocos2d-iphone

我用的是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/

相关文章:

ios - 如何判断指针指向的值何时为nil

c++ - 当使用 CreateObject 从 VBScript 通过 COM 引用 C++ DLL 时,如何处理 DLL 版本?

c++ - 如何在当前项目中包含另一个项目的类?

c++ - 尽管有非默认构造函数参数,但在 const 引用成员上调用默认构造函数

cocoa-touch - TMX : Only 1 tilset per layer is supported

ios - 当我在不覆盖 ccMenuItem 类的情况下触摸 ccMenuItem 时调用 ccTouchesBegan

c++ - 使用参数执行 .bat 文件并读取 C++ 中的控制台输出

c++ - 读取文件为二进制/十六进制

objective-c - iOS游戏渲染中的图形错误

ios - 可以在不创建新类的情况下使用 CCCallFuncND 将多个数据发送到选择器吗?