c++ - 在不使用定义的情况下缩短调用/名称

标签 c++ visual-studio-2008

简单的问题,如何在不使用定义的情况下缩短调用/名称。

例如,我有一个必须在命名空间内调用的单例(我不能使用 using namespace blabla 因为这是不允许的),如下所示:

MyFW::GameRoot::Instance()->DoSomething();

现在我可以将它分配给一个变量,如果我在同一个类/函数中多次使用它,这会有些效果,但在许多类/函数中使用它会变得很麻烦。我决定为它使用#define:

#define MyFW::GameRoot::Instance() ROOT //defined in GameRoot.h

ROOT->DoSomething(); //Used where-ever GameRoot.h is included

好多了,我真的很喜欢它,因为现在无论我在哪里看到 ROOT(通过 V-Assist 进行颜色编码),我都会立即知道它是什么......除非我在那里有一个断点并且我需要 Visual Studio 将 ROOT 解析为显示在监 window 口中(或者甚至将鼠标悬停在它上面以快速拉出调试中的对象),这是它做不到的。

还有其他选择吗?你们用什么来缩短名字?简单地使用本地/成员指针来存储实例?

谢谢!

最佳答案

你不能使用using namespace ...,但是你可以使用吗

namespace root=MyFW::GameRoot;

然后你可以输入

root::Instance()->DoSomething();

像这样定义命名空间比 #define 更好。 (即它不会在其他地方被错误地破坏。编译器知道你想做什么。)

关于c++ - 在不使用定义的情况下缩短调用/名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3262020/

相关文章:

C++ win32复选框列表-多重选择

c# - 无法在 C# Express (2008) 中删除断点

c++ - 通过索引从 QJsonObject 获取值

c++ - 接受 C++ 字符串和 C 风格字符串的通用类

c# - vs2008 中的默认智能感知快捷方式是什么?

asp.net - 获取字符串中gridview的编辑项模板中的文本框和复选框值

c++ - 如何使用带路径的包含文件在 Visual Studio 中构建?

visual-studio-2008 - 如何在MSVS intellisense中显示返回值摘要?

c++ - 如何在 C++ 中的文件更改事件中获取文件名

c++ - boost::asio 自定义处理程序分配