1>mainProg.obj : error LNK2019: unresolved external symbol "public: int __thiscall Stack<int>::pop(void)" (?pop@?$Stack@H@@QAEHXZ) referenced in function _main 1>mainProg.obj : error LNK2019: unresolved external symbol "public: void __thiscall Stack<int>::push(int)" (?push@?$Stack@H@@QAEXH@Z) referenced in function _main 1>C:\Users\oliver\documents\visual studio 2010\Projects\StackTemplate\Debug\StackTemplate.exe : fatal error LNK1120: 2 unresolved externals
Hier sind die codes:
Stack.h
#define NMAX 100 template <class T> class Stack { private: T stack[NMAX]; int stackPointer; public: Stack() {stackPointer = 0;} void push(T value); T pop(void); void popall(void) { stackPointer = 0; } };
Stack.cpp
#include <iostream> #include "Stack.h" using namespace std; template<class T> void Stack<T>::push(T value) { if(stackPointer < NMAX) stack[stackPointer++] = value; else cout << "PUSH: Stack is full" << endl; } template<class T> T Stack<T>::pop() { if(stackPointer > 0) return stack[--stackPointer]; else cout << "POP: Stack is empty" << endl; }
mainProg.cpp
#include <iostream> #include <string> #include "Stack.h" using namespace std; int main() { int items; int i = 0; Stack<int> stapel; cout << "Legen Sie bitte 10 Zahlen auf den Stapel" << endl; while(i < 10) { cin >> items; stapel.push(items); } cout << "Sie haben diese Zahlen auf den Stapel gegeben" << endl; while(i < 10) cout << stapel.pop() << endl; cout << "Stapel wird geleert..." << endl; stapel.popall(); cout << endl; return 0; }
Was hab ich da was falsch gemacht?
Danke schon mal im Voraus