ランダムに値を返す関数をrandam.hで定義し、
それをNormalMode.hとNormalMode.cppで呼び出しているのですが、
エラーがでてしまいました。おそらく#includeで問題が起きていると考えていますが、
仕組みが理解できず、どう直せばいいかわかりません。
以下は4つのファイルで構成されております。
環境はvisualStudio2019です。
エラー内容
1>: error LNK2005: "int __cdecl Randam10(void)" (?Randam10@@YAHXZ) は既に NormalMode.obj で定義されています。
1>: fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。
#ifndef func_H #define func_H #include <random> //func.h int Randam10() { std::random_device rnd; // 非決定的な乱数生成器を生成 std::mt19937 mt(rnd()); // メルセンヌ・ツイスタの32ビット版、引数は初期シード値 std::uniform_int_distribution<> randam(1, 10); // [1,10] 範囲の一様乱数 return randam(mt); }
//NormalMode.h #ifndef NormalMode_H #define NormalMode_H #include <string> #include "func.h"
//NormalMode.cpp #include <iostream> #include "NormalMode.h" #include <ctype.h> #include <random> #include <string>
//main.cpp #include <iostream> #include "NormalMode.h"
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/09 03:07
2021/06/09 06:56
2021/06/09 07:00
2021/06/09 07:05
2021/06/09 07:08