Template Header & Cpp Problem



  • Beim Versuch eine Template Header Datei zu erstellen und die Deklarationen anschließend in einer Cpp Datei abzulegen erhalte ich die Fehlermeldung einer nicht aufgelösten Funktion. Was mache ich falsch?
    So sieht mein Code aus:

    Main.cpp

    #include "MyStack.h"
    
    int main()
    {
    	MyStack<double, 2> Test;
    	Test.push(2);
    
    	system("pause");
    }
    

    MyStack.h

    #pragma once
    #include <iostream>
    using namespace std;
    
    template<class T, int i> class MyStack
    {
    	T*  pStack;
    	T StackBuffer[i];
    	static const int cItems = i * sizeof(T);
    public:
    	MyStack(void);
    	void push(const T item);
    	T& pop(void);
    };
    

    MyStack.cpp

    #include "MyStack.h"
    
    template< class T, int i > MyStack< T, i >::MyStack(void)
    {
    };
    
    template< class T, int i > void MyStack< T, i >::push(const T item)
    {
    };
    
    template< class T, int i > T& MyStack< T, i >::pop(void)
    {
    };
    


  • Templates werden nicht in einer separaten cpp-Datei implementiert. Pack alles in den Header.



  • manni66 schrieb:

    Templates werden nicht in einer separaten cpp-Datei implementiert. Pack alles in den Header.

    Jetzt geht's danke!


Anmelden zum Antworten