如何声明另一个类中的枚举?

莫森

我在一个班级有一个枚举:

class SettingManager : public QObject
{
    Q_OBJECT
public:
    enum BookDisplayKinds{
        BookDisplay1=0,
        BookDisplay2=1,
    };
    Q_ENUMS(BookDisplayKinds)
};

我想在另一个类中声明一个属性

#include<settingmanager.h>
class BookManager : public NetworkManager
{
  private:    
     SettingManager::BookDisplayKinds m_BookDisplayKind;//Error is here
};

但我得到以下错误:

“SettingManager”未命名类型

我在 BookManager 之前添加了 SettingManager 的前向声明

#include<settingmanager.h>
class SettingManager;
class BookManager : public NetworkManager
{
  private:    
     SettingManager::BookDisplayKinds m_BookDisplayKind;//Error is here
};

但现在我有以下错误

“class SettingManager”中的“BookDisplayKinds”未命名类型

消耗

您可以切换到自 C++11 起可用的强枚举。我建议你把它从类中删除。

// SettingManager.h header
enum class BookDisplayKinds{
        BookDisplay1=0,
        BookDisplay2=1,
};
class SettingManager : public QObject
{
    Q_OBJECT
public:
};

现在可以像这样进行前向声明:

// BookManager.h header
enum class BookDisplayKinds; // forward declaration
class BookManager : public NetworkManager
{
  private:    
     BookDisplayKinds m_BookDisplayKind;/
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在另一个枚举中的枚举中声明管道列表?

如何获取在另一个枚举中声明的所有嵌套枚举的集合或数组?

无法从另一个类中定义的枚举中声明Q_ENUM

如何在一个类中声明另一个类的实例

如何获得在另一个类的一个类中声明的变量?

目标 C:如何访问 AppDelegate 中另一个类中声明的类?

如何迭代在另一个类中声明为 ArrayList 的类对象?

如何访问在另一个类中声明的类?

如何从Swift中的另一个类访问枚举?

如何从另一个类的Builder中引用枚举字段?

如何使用或调用在另一个类中声明的静态变量

如何调用在另一个类中声明的方法(C ++)

如何使用在另一个类中声明的变量

如何根据另一个类的类型声明一个类

我如何在另一个枚举中引用一个枚举

在另一个类中声明一个类的目的是什么?

C ++在另一个类头文件中声明一个类

在一个类中声明一个枚举

在另一个类中声明一个对象

如何独立于 C++ 中声明的位置在另一个类函数中使用类?

枚举类如何可以扩展另一个外部库类?

如何通过引用传递另一个类的函数内的枚举类?

如何从另一个类中迅速调用另一个方法?

我如何在一个类中声明一个对象,该对象在其构造函数中需要另一个?

调用在 python 中另一个类中声明的类

从另一个类访问枚举

如何在另一个枚举中设置枚举值?

如何在Swift中从另一个枚举创建枚举?

将类声明为另一个类中的属性