这个问题在这里已有答案:
我在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
在标题中使用include guards或#pragma once
以防止在同一翻译单元中出现多个定义。