Извините за этот обширный (основной) вопрос, но у меня возникла проблема при попытке отделить мою функцию main () от моего чтения. cc файла.
Сначала я написал main () в моем чтении. cc, так как его было проще тестировать, и он работал отлично. Сейчас я модулирую свой код и использую main () в другом файле ( main. cc), но я получаю «Ошибка множественного определения».
//course.h
#ifndef _COURSE_H
#define _COURSE_H
#include "dependencies.h"
class Course{
public:
int id;
std::string id_if;
std::string name;
std::string dayTime;
};
#endif
//read.h
#ifndef _READ_H
#define _READ_H
#include "../Classes/course.h"
#include "../Classes/dependencies.h"
using namespace std;
vector <Course*> course;
void readCourse();
void courseCheck(Grade* a, string* temp);
void dispoCheck(Teacher* teacher, string* temp, int day);
const vector<string> explode(const string& s, const char& c);
#endif
//read.cc
void readCourse(){
Course* inp = new Course();
ifstream file;
file.open("../Data/Cursos.csv");
string temp;
getline(file, temp, '\n');
while(file.good()){
getline(file, temp, ';');
inp->id = stoi(temp);
getline(file, inp->id_if, ';');
getline(file, inp->name, ';');
getline(file, inp->dayTime, '\n');
}
course.push_back(inp);
}
//main.cc
#include "Input/read.h"
int main(){
readCourse();
}
Ошибка:
g++ main.cc Input/read.cc -o exe -lm
/tmp/ccyRgnlM.o:(.data+0x0): multiple definition of `course'
/tmp/ccoTZsnQ.o:(.data+0x0): first defined here
collect2: ld returned 1 exit status