我是编程新手,我正在使用C ++。
在我的头文件:Globals.h中,我已经声明了我的枚举," Color"以及用于测试它的功能。
在我的源文件Globals.cpp中,我已经定义了枚举和测试函数。
在main中我调用了该函数,但是给出了这条消息:
错误C2027:使用未定义的类型'颜色'
和
错误C2065:' COLOUR_BLACK':未声明的标识符。
我的代码如下:
Globals.h
#ifndef GlOBALS_H
#define GLOBALS_H
enum class Colour;
void print_Colour(Colour whatColour);
#endif
和
Globals.cpp
#include <iostream>
#include "Globals.h"
enum class Colour
{
COLOUR_BLACK,
COLOUR_BROWN,
COLOUR_BLUE,
COLOUR_GREEN,
COLOUR_RED,
COLOUR_YELLOW
};
void print_Colour(Colour whatColour)
{
switch (whatColour)
{
case Colour::COLOUR_BLACK:
std::cout << "Black" << "\n";
break;
case Colour::COLOUR_BROWN:
std::cout << "Brown" << "\n";
break;
case Colour::COLOUR_BLUE:
std::cout << "Blue" << "\n";
break;
case Colour::COLOUR_GREEN:
std::cout << "Green" << "\n";
break;
case Colour::COLOUR_RED:
std::cout << "Red" << "\n";
break;
case Colour::COLOUR_YELLOW:
std::cout << "Yellow" << "\n";
break;
default:
std::cout << "Who knows!" << "\n";
}
}
和
Source.cpp
#include <iostream>
#include "Globals.h"
using namespace std;
int main()
{
Colour paint = Colour::COLOUR_BLACK;
print_Colour(paint);
std::cin.get();
std::cin.get();
return 0;
};
非常感谢任何帮助!
答案 0 :(得分:4)
Source.cpp
只看到前方声明。您应该将实际的enum
移到头文件中。
答案 1 :(得分:1)
enum class Colour
中包含的标头文件Globals.h
中定义 Source.cpp
。
否则,此枚举的定义在Source.cpp
中不可见。