C++ 函数返回在另一个类中定义的枚举(致命链接错误)

C++ 函数返回在另一个类中定义的枚举(致命链接错误),c++,enums,linker-errors,C++,Enums,Linker Errors,这似乎是一个常见的问题。我在classA中定义了一个枚举,然后在classB中包含classA。然后,在classB中我定义了一个函数,它返回classA中定义的枚举类型…见下文。我得到以下错误: affirst.obj:错误LNK2019:未解析的外部符号“public:enum justEnum::things\u t\u此调用使用enum::returnsThings(void)”(?returnsThings@usesTheEnum@@QAE?AW4零件_t@justEnum@@XZ)在

这似乎是一个常见的问题。我在classA中定义了一个枚举,然后在classB中包含classA。然后,在classB中我定义了一个函数,它返回classA中定义的枚举类型…见下文。我得到以下错误:

affirst.obj:错误LNK2019:未解析的外部符号“public:enum justEnum::things\u t\u此调用使用enum::returnsThings(void)”(?returnsThings@usesTheEnum@@QAE?AW4零件_t@justEnum@@XZ)在函数_wmain中引用 1> C:\Documents and Settings\Ben\My Documents\Visual Studio 2010\Projects\aFirst\Debug\aFirst.exe:致命错误LNK1120:1未解析的外部

#pragma一次
类justEnum
{
公众:
justEnum(无效);
~justEnum(void);
列举事物{1,2};
};
#布拉格语一次
#包括“justEnum.h”
类使用枚举
{
公众:
使用枚举(无效);
~UseSheEnum(无效);
justEnum::things\u t returnsThings(void);
};
#包括“StdAfx.h”
#包括“使用枚举.h”
#包括“justEnum.h”
usesTheEnum::usesTheEnum(无效)
{
}
usesTheEnum::~usesTheEnum(无效)
{
}
justEnum::things\u t returnsThings()
{
返回justEnum::ONE;
}
//tester.cpp:定义控制台应用程序的入口点。
//
#包括“stdafx.h”
#包括
#包括
#包括“justEnum.h”
#包括“使用枚举.h”
使用名称空间std;
int _tmain(int argc,_TCHAR*argv[]
{
使用Enum aUser;
胡麻;
justEnum::其他事物;
anotherEnum=justEnum::一;
aUser.returnsThings();
库特
错误LNK2019:未解析的外部符号“public:enum justEnum::this\u t\u this调用使用enum::returnsThings(void)”

编译器抱怨没有定义
UseSEnum::returnThings()
,我在您发布的代码中看不到定义。您应该在一个翻译单元中提供函数的定义


我想我无法强调学习阅读错误信息的重要性。编译器正在尽力告诉您错误所在。

不是舒尔,但您不能将枚举移出课堂吗

或者在类的.cpp上写 外部枚举类名::things\u t;
只需将枚举添加到生成的库中,它就是链接的对象。

您需要指定
returnsThings()
的定义是
使用枚举类的一部分

justEnum::things_t usesTheEnum::returnsThings()
{
    return justEnum::ONE;
}

“代码”>定义了JuthUnth<代码>构造函数和析构函数?@ USSR42420,您不需要在C++中使用“代码>空格< /代码>指定空参数列表。他对函数定义有链接错误。这与<代码>枚举< /COD>是如何定义的无关。
justEnum::things_t usesTheEnum::returnsThings()
{
    return justEnum::ONE;
}