c – 不使用定义的较短呼叫/名称
发布时间:2020-12-16 10:27:53 所属栏目:百科 来源:网络整理
导读:简单的问题,如何在不使用定义的情况下缩短调用/名称. 例如,我有一个我必须在命名空间内调用的单例(我不能使用命名空间blabla,因为它是不允许的),如下所示: MyFW::GameRoot::Instance()-DoSomething(); 现在我可以将它分配给一个变量,如果我在同一个类/函数
简单的问题,如何在不使用定义的情况下缩短调用/名称.
例如,我有一个我必须在命名空间内调用的单例(我不能使用命名空间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显示在观察窗口(甚至将鼠标悬停在它上面,以便在调试中快速拉出对象),这是它无法做到的. 还有其他选择吗?你们做些什么来缩短名字?只需使用本地/成员指针来存储实例? 谢谢! 解决方法
如果要简化多个函数的访问,只需使用辅助函数:
namespace { MyFW::GameRoot* root() { return MyFW::GameRoot::Instance(); } } // ... root()->DoSomething(); 两个字符更多,但它包括类型安全. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容