Хауди. Я работаю над заданием C ++ для моего класса. Я почти закончил, но не могу понять эти ошибки:
error LNK2001: unresolved external symbol "public: virtual void __thiscall HasQuarterState::dispense(void)const " (?dispense@HasQuarterState@@UBEXXZ) gumball.obj Gumball
error LNK2001: unresolved external symbol "public: virtual void __thiscall SoldState::turnCrank(void)const " (?turnCrank@SoldState@@UBEXXZ) gumball.obj Gumball
fatal error LNK1120: 2 unresolved externals C:\School Work\CS 492\Gumball\Debug\Gumball.exe Gumball
Я пошел в MSDN и посмотрел на ошибку LNK2001, но получил огромное количество информации, и боюсь, что не могу понять, что не так, учитывая мой ограниченный опыт работы с C ++ при просмотре страницы MSDN.
Но я верю, что проблемы возникают из-за того, как я структурировал свою программу. Мой учитель сказал, что мы можем использовать один файл .cpp, если захотим, но я думаю, в конце концов, я недостаточно знал о Visual Studios / C ++, чтобы сделать это. В конечном итоге я столкнулся с некоторыми другими проблемами, которые мне пришлось решить, используя один файл .cpp.
Код / файл находится здесь: http://codepad.org/LpBeJT2Y
Это большой беспорядок, но это то, что я сделал:
- Объявление класса с именем GumballMachine (без определения)
- Определить класс с именем State (который в свою очередь имеет указатель на GumballMachine)
- Определено несколько других классов состояний, которые наследуются от State
- Определить класс GumballMachine
- Определено несколько функций, которые были исключены из первоначальных определений других классов состояний. Это потому, что эти функции основаны на определенных функциях GumbballMachine и не будут работать, пока не будут определены функции GumballMachine.
- void main ()
Насколько я могу судить (с моим ограниченным знанием VS / C ++), код выглядит хорошо. Может быть, кто-то с большим опытом поймает что-то. Любые указатели о том, как решить эту проблему?
Спасибо за помощь.