У меня есть следующие classA.hПолучение неразрешенный внешний символ при компиляции C++ класс
#ifndef ClassAH
#define ClassAH
class A
{
public :
A();
~A();
static std::map< std::string, std::vector<string> > getSomething();
}
#endif
и реализация в classA.cpp
#include classA.h
std::map< std::string, std::vetor<string> > classA::getSomething()
{
//implementation
return map
}
Теперь у меня есть еще один класс, в котором classB.cpp Я делаю:
#include classA.h
void method1()
{
std::map< std::string, std::vector<string> > map = classA::getSomething();
}
Примечание getSomething() является статическим.
Когда я скомпилирую классB Я получаю ошибку LNK2019 по методу getSomething(), который говорит о неразрешенном внешнем символе .... ссылается на метод1().
Что здесь не так?
на самом деле я включать в себя :: в моем определении, (я забыл его в моем первоначальном посте я теперь отредактировал вопрос), но все еще получаю ошибку, когда я вызываю это в classB.cpp – SomeDude
, ваш класс 'A', но в коде, который вы набрали classA :: –
, я не решил, что решил. Мне пришлось изменить файл определения. Благодарю. – SomeDude