如何修复C++中的“枚举未命名类型”错误消息[重复]

1dkrff03  于 2023-04-01  发布在  其他
关注(0)|答案(1)|浏览(123)

此问题在此处已有答案

c++ struct does not name a type(1个答案)
6天前关闭。
C++编译器产生错误代码:'color'没有命名类型我包含了问题的所有相关代码。错误消息只与cpp文件中的函数声明一起出现
Card.cpp

#include "Card.h"
Color Card::getColor() {return color;}

Card.h

#ifndef CARD_H
#define CARD_H

#include <string>
#include <iostream>
#include <sstream>
using namespace std;

class Card
{
public:
enum Color{purple, orange};

private:
int rank = 0;
int value = 0;
Color color = purple;

public:
Color getColor();
anauzrmj

anauzrmj1#

问题不在于你的函数定义是否在头文件或源文件中,而在于它是否在class Card内部。如果你试图在头文件内部但在类定义外部定义函数,你会遇到完全相同的问题。解决方案很简单,你必须引用enum Color作为class Card的内部类型:

Card::Color Card::getColor() {return color;}

相关问题