私は良いプログラミングプラクティスを使用してC++でユーザーから入力を受け取る簡単なプログラムを作成しようとしています。 Input.hpp、Input.cpp、main.cppで構成されています。私はそれを防ぐためにifndefを使用していますが、多重定義エラーが発生し続けます。ヘッダーファイルの変数の宣言C++
Input.hpp
#ifndef Input_HPP
#define Input_HPP
#include <string>
#include <vector>
using namespace std;
vector<string> Get_Input();
vector<string> input_array;
string starting_position;
int input_number;
#endif
Input.cpp
#include <iostream>
#include <cmath>
#include <string>
#include <vector>
#include "Input.hpp"
using namespace std;
vector<string> Get_Input()
{
cin>>starting_position;
cin>>input_number;
for (int i = 0; i < input_number; i++)
{
cin>>input_array[i];
}
cout<<"Done";
return input_array;
}
main.cppに
私はヘッダファイルから変数の宣言を削除し、CPPに入れ#include "Input.hpp"
#include <iostream>
using namespace std;
int main()
{
Get_Input();
return 0;
}
プログラムはエラーなしで構築されたヘッダーファイルに関数宣言を保持します。変数と関数をヘッダファイルで宣言できるのは私の理解です。誰かが私に行方不明を教えてもらえますか?
ありがとうございます。
"extern"は私が探していたものです。簡単な例をありがとう! – ChrisCantrell