首页 > 解决方案 > 结构和枚举类的循环引用问题

问题描述

我有一个头文件(A):

namespace CChristianLifeMinistryDefines
{
    using S_DISCUSSION_HIST_ITEM = struct tagDiscussionHistItem
    {
        CString strName;
        Schools eSchool;
        COleDateTime datMeeting;
    };
    using DiscussionItemHistList = list<S_DISCUSSION_HIST_ITEM>;
}

上面的头文件包含在另一个头文件(B)中:

#include "ChristianLifeMinistryDefines.h"
using namespace CChristianLifeMinistryDefines;

enum class Schools
{
    kMain,
    kClass1,
    kClass2,

    kCount
};

我遇到的问题(我理解为什么)是在枚举之前定义Schools的结构中提到的。S_DISCUSSION_HIST_ITEMSchools

错误 C3646:“eSchool”:未知覆盖说明符

枚举已在我的项目中定义,无法移动,否则编译时可能会发生故障。

我所做的是将类定义从文件 B 移动到文件 A。但是还有其他解决方案吗?我不能简单地将标题 B 包含在标题 A 中,因为我得到了一个循环引用,而且我无法理解我在互联网上找到的内容。

标签: visual-c++mfc

解决方案


推荐阅读