2

次のように、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();

ツール.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
4

1 に答える 1

11

インクルード ガードまたはヘッダーを使用#pragma onceして、同じ翻訳単位で複数の定義を防止します。

于 2014-05-20T13:53:23.433 に答える