静态变量的基本类型定义/别名
Basic typedef/alias of a static variable
我怎样才能将它键入/别名到更基本的东西中,如ProjectInstance:
((ProjectType*)NamespaceOne::NamespaceTwo::ClassName::StaticVariable)->x=0;
这是一个静态类,每次都通过命名空间+强制转换调用它很烦人。
我怎样才能将其简化为某种别名,以便我可以将其称为
ProjectInstance->x=0;
我最初的想法是这样的:
#typedef ((ProjectType*)NamespaceOne::NamespaceTwo::ClassName::StaticVariable) ProjectInstance
其中 ProjectInstance 是强制转换为 ProjecType* 的 StaticVariable 的别名。
NamespaceOne::NamespaceTwo::ClassName::StaticVariable
StaticVariable 是 BaseType 的一个实例。ProjectType 扩展了 BaseType,我只是将 StaticVariable 强制转换为 ProjectType,因为 ProjectType 类中有一个额外的变量"x"。
我试图避免的:在我需要访问此静态变量的每个类中声明一个指针/函数。
到目前为止,解决方案是"使用命名空间",虽然我之前知道这一点,但它是迄今为止发布的最佳解决方案。
因此,我们将原始代码行剪切为:
((ProjectType*)ClassName::StaticVariable)->x=0;
我有另一个解决方案:
ClassName::ProjectStaticVariable->x=0;
通过在"ClassName"类中创建一个新指针,我能够进一步减少它。
有没有更好的方法来进一步减少这种情况?
您可以将某些函数用作:
ProjectType* ProjectInstance()
{
return static_cast<ProjectType*>(NamespaceOne::NamespaceTwo::NamespaceThree::StaticVariable);
}
并将其用作:
ProjectInstance()->x = 0;
在本地调用using directive
?
using namespace NamespaceOne::NamespaceTwo::NamespaceThree;
// do something to StaticVariable
相关文章:
- 部分定义/别名模板模板参数
- 使用定义函数模板别名
- 在Qt中注册自定义元类型的别名类型
- 使用外部定义的模板类型作为模板参数的更通用模板的模板别名
- 参数化类的别名(或类型定义)内部类
- 为什么此模板定义了一组匹配void的别名类型
- 如何定义别名以通过结构访问枚举类成员
- C++ 中模板化别名的类型定义
- 别名 私有子结构中的静态成员的定义
- 将别名定义为操作员
- 使用自定义deleter类型定义std::shared_ptr的别名
- 如何使用别名声明模板化函数类型定义
- C++对类/结构中定义的公共别名(typdef/using)的循环依赖
- 在不键入别名类型的完整声明的情况下,无法从类模板定义中访问类型的类型别名
- 是否可以将类型别名定义为constexpr函数
- 是否可以为模板模板参数定义别名
- C 使用模板为结构定义别名
- 定义类型别名时出现语法错误
- 为map的map定义别名
- 静态变量的基本类型定义/别名