gpt4 book ai didi

c++ - 编译错误 - 类中的枚举

转载 作者:太空宇宙 更新时间:2023-11-03 10:43:13 30 4
gpt4 key购买 nike

我有一个编译错误,我不知道为什么。我在 .h 文件和 .cpp 文件上有枚举声明,假设在 stringToEnum() 函数中使用它

这是.cpp文件

#include "A.h"

A::A(void)
{
}

A::~A(void)
{
}

values A::stringToEnum (string inputString) {
if (inputString == "string1") return val1;
if (inputString == "string2") return val2;
}

这是头文件

class A
{
public:

A(void);
~A(void);


private:
enum values{
val1,
val2,
val3,
val4
};
values stringToEnum (string inputString);
};

这是我得到的错误:

1>c:\users\documents\visual studio 2010\projects\A.cpp(25): error C2143: syntax error : missing ';' before 'A::stringToEnum'
1>c:\users\documents\visual studio 2010\projects\A.cpp(25): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\documents\visual studio 2010\projects\A.cpp(25): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\documents\visual studio 2010\projects\A.cpp(25): error C2556: 'int A::stringToEnum(std::string)' : overloaded function differs only by return type from 'A::values A::stringToEnum(std::string)'
1> c:\users\documents\visual studio 2010\projects\A.h(22) : see declaration of 'A::stringToEnum'
1>c:\users\documents\visual studio 2010\projects\A.cpp(25): error C2371: 'A::stringToEnum' : redefinition; different basic types
1> c:\users\documents\visual studio 2010\projects\A.h(22) : see declaration of 'A::stringToEnum'

我很乐意提供一些指导。

谢谢

最佳答案

由于 values 包含在 A 中,您需要限定名称:

A::values A::stringToEnum (string inputString) {
//...

关于c++ - 编译错误 - 类中的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29793284/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com