Ошибка C++: неразрешенный внешний символ _main, на который ссылается функция " int_cdecl invoke_main (void)"
Когда я компилирую этот код, он выдает мне эту ошибку :
Неразрешенный внешний символ _main, на который ссылается функция " int_cdecl invoke_main (void)"
в чем проблема с моим кодом?
Что я уже пробовал:
основная функция :
#include "stdafx.h" #include <iostream> #include "myqueue.h" using namespace std; template <class T> int main() { myqueue <int> intQueue; cout <<"size ="<< intQueue.size() << endl; intQueue.add(10); intQueue.add(20); intQueue.add(30); cout << intQueue.retrieve() << endl; intQueue.remove(); intQueue.add(40); intQueue.add(50); cout << intQueue.retrieve() << endl; intQueue.remove(); intQueue.add(60); cout <<"size ="<< intQueue.size() << endl; while (!intQueue.isEmpty()) { cout << intQueue.retrieve() << endl; intQueue.remove(); } cout <<"size ="<< intQueue.size() << endl; return 0; }
моя_очередь.ч:
#include<stack> using namespace std; template <class T> class myqueue { private:stack <T> st1, st2; public: myqueue(); ~myqueue(); bool add(T element); T retrieve(); bool remove(); bool isEmpty(); int size(); };
myqueue.cpp:
#include "stdafx.h" #include "myqueue.h" #include <stack> using namespace std; template <class T> myqueue<T>::myqueue() { } template <class T> myqueue<T>::~myqueue() { } template <class T> bool myqueue<T>::add(T element) { st1.push(element); return true; } template <class T> bool myqueue<T>::isEmpty() { if (st1.size()== 0) { cout << "Empty queue" << endl; return true; } cout << "Not empty queue" << endl; return false; } template <class T> int myqueue<T>::size() { return st1.size(); } template <class T> T myqueue<T>::retrieve() { while (!st1.empty) { st2.push(st1.top); st1.pop(); } T item = st2.top(); while (!st2.empty) { st1.push(st2.top()); st2.pop(); } return item; } template <class T> bool myqueue<T>::remove() { if (!st1.empty) { while (!st1.empty) { st2.push(st1.top); st1.pop(); } while (!st2.empty) { st1.push(st2.top()); st2.pop(); } return true; } else return false; }
[no name]
Ваша основная функция не является шаблонным классом.
Member.R
Я на самом деле добавил: template & lt;class T> Перед основной функцией, потому что она дала мне сначала ошибки, говорящие : неразрешенный внешний символ " public_thiscall
моя_очередь И Л;int&ГТ;::моя_очередь И Л;int> У(ничтожным)
и то же самое для каждой функции в классе
поэтому, когда я думал, что добавление шаблона & lt;class T & gt; решит проблему...
Если бы вы знали, как решить эту проблему, я был бы вам очень благодарен !!
Albert Holguin
Ваше "исправление" сломало ожидаемый основной прототип. Ваша первоначальная проблема заключалась в том, что вы сигнализировали об ошибке, которую пытались исправить неправильно.