枚举的多重定义

时间:2014-05-20 13:51:03

标签: c++ multiple-definition-error

我在include.h中有一个名为Color,Return_main_menue和Playertype的枚举,如下所示:

enum Color { Red, Orange, Grey, Blue, Green, White, Purple };
enum Return_main_menue { Start, Credits, Help };
enum Playertype { Computer, Human };

我还有一个名为tools.cpp和tools.h的源文件 的Tools.h:

#include "including.h"
Return_main_menue mainmenue();

tools.cpp:

Return_main_menue mainmenue()
{
// function which return Start, Credits or Help
}

我在main.cpp中使用mainmenue():

Return_main_menue mainm = mainmenue();

但是编译器返回错误:

.../einbindung.h:7: error: multiple definition of 'enum Farbe'
.../einbindung.h:7: error: previous definition here
and so on for the other enums

1 个答案:

答案 0 :(得分:8)

在标题中使用include guards#pragma once可防止同一翻译单元中出现多个定义。