我想创建一个简单的程序,它使用良好的编程习惯在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
#include "Input.hpp"
#include <iostream>
using namespace std;
int main()
{
Get_Input();
return 0;
}
当我从头文件中删除变量声明,并把它们放在CPP文件,但保留函数声明在程序生成的头文件中,没有错误。我的理解是变量和函数可以在头文件中声明。有人可以向我解释我缺少的东西吗?
谢谢。
“extern”是我寻找的东西。感谢一个简单的例子! – ChrisCantrell