Я пытаюсь создать простую программу, которая принимает входные данные от пользователя на 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 файл, но сохраните объявление функции в файле заголовка, который программа создает без ошибок. Я понимаю, что переменные и функции могут быть объявлены в файлах заголовков. Может кто-нибудь, пожалуйста, объясните мне, что мне не хватает?
спасибо.
«Экстерн» - это то, что я искал. Спасибо за простой пример! – ChrisCantrell