缩短静态定义

问题描述

| 如果我有一个名为
SomeClassName
的类,是否可以避免在每次引用该类中的内容时都编写
SomeClassName::
?我正在沿着命名空间的思路思考,可以将定义括在
using MyNamespace { ... };
中,并避免每次都编写类所属的命名空间(不好的做法?)。 原因之一是现在我有这样的代码,它很长而且很难阅读imo:
SomeClassName::SimpleStruct SomeClassName::m_soMetable[SomeClassName::m_soMetableSize][SomeClassName::m_soMetableSize] = {SomeClassName::EmptyStruct};
    

解决方法

不,但是如果您所需要的只是较少的键入,则可以使用typedef来缩短名称:
typedef SomeClassName SCN;
    ,只需使用全局类型/枚举即可。     ,不幸的是,当引用另一个名称空间/范围内的标识符时,必须使用ѭ5)范围解析运算符对标识符名称进行完全限定(类也定义了范围),
using
指令仅适用于名称空间。唯一的其他选择是使用像约翰提到的ѭ7或宏。如果没有此限制,那么最终将导致标识符名称到处都是冲突,并且最终会出现C样式的命名约定,在这些约定中,函数名称会变得很长,因为它们基本上将名称空间放入了函数中/标识符名称。