Я новичок и получаю некоторые действительно странные ошибки в моем коде c ++. Насколько я могу судить, они вызваны множественными ошибками включения.
У меня есть следующие файлы
CardBase.h
#include <string>
#include <vector>
#include <map>
class Class1 {
string someString;
vector<type> someVector;
map<type,type> someMap;
type someMethod (param);
}
CardBase. cpp
#include "StringParser.cpp"
someType Class1::someMethod (param){
// Use splitAtChar()
}
StringParser. cpp
#include <string>
#include <vector>
someType splitAtChar(){
...
}
Это приводит к двум ошибкам в коде VS:
LNK2005 "class std :: vector , класс std :: allocator >> __cdecl splitAtChar (класс std :: basic_string , char) "(? splitAtChar @@ YA? AV? $vector@V?$basic_string@DU?$char_traits@D@std@@V? $allocator@D@2@@std@@V? $allocator@V?$basic_string@DU?$char_traits@D@std@@V? $allocator@D@2@@std@@@2@@std@@V? $basic_string@DU?$char_traits@D@std@@V? $allocator@D@2@@2@D@Z) уже определено в CardBase.obj
и
найден один или несколько кратно определенных символов