使用没有classname::的其他类的enum
Use enum from other class without classname::
我在一些类A的公共部分有enum。我想在类B中使用这个enum。是否可以在不指定* a::enum_value*的情况下访问它?所以我可以用*enum_value*。
using A::enumname;
内部类B不编译
If you only need certain values, you can do:
struct B {
static const A::enumname
enum_value1 = A::enum_value1,
enum_value2 = A::enum_value2; // etc.
};
如果可以修改A,则可以将枚举提取为A和B都可以使用的基类:
struct AEnum {
enum enumname { enum_value1, enum_value2 };
};
struct A : AEnum {
};
struct B : BEnum {
};
没有好办法直接将所有enum值从一个地方导入到另一个地方。在这种情况下,我建议将A
的枚举包装到一个嵌套类中,然后将类型定义为B
。例如:
class A
{
public:
struct UsefulEnumName
{
enum Type { BAR };
};
};
class B
{
typedef A::UsefulEnumName UsefulEnumName;
UsefulEnumName::Type foo() const { return UsefulEnumName::BAR; }
};
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- enum是C++中的宏变量还是整数变量
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 是否可以从int转换为enum类类型
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 为什么我不能在 C++ 中的特定函数重载中调用同一函数的任何其他重载?
- 在其他文件中创建类时在 c++ 项目中不起作用
- 在一个模板函数中,若输入的类型是enum类,我该如何使用std::underlying_type
- 类与私有变量的其他类之间的线程安全性
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- GlobalAlloc而不是其他分配方法
- C++从其他 constexpr 创建 lambda 不能按顺序执行 Constexpr
- 断言中的Fold表达式在某些计算机上编译,但在其他计算机上不编译
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头
- 结构和双指针隐藏在其他结构中,多层混淆
- UE4在OnComponentBeginOverlap上铸造其他actor
- 当我在其中一个线程执行中(在activemq-cpp中)捕获到特定值时,我如何终止/停止所有其他线程
- 使用没有classname::的其他类的enum
- 从其他类的成员函数返回ENUM(在一个类中定义)