Template Frage



  • Warum geht eigentlich nur das hier?

    #include <iostream>
    using namespace std;
    
    template <class T>
    void Swap(T &a, T &b)
    {
        T temp;
        temp=a;
        a=b;
        b=temp;
    }
    
    int main()
    {
    
        return 0;
    }
    

    und nicht das hier auch?

    #include <iostream>
    using namespace std;
    
    template <class T>
    void Swap(T &a, T &b);
    
    int main()
    {
    
        return 0;
    }
    
    void Swap(T &a, T &b)
    {
        T temp;
        temp=a;
        a=b;
        b=temp;
    }
    

    Dankeschön schon mal im Voraus.



  • Weil du eine Zeile vergessen hast:

    template<class T> // Auch hier
    void Swap(T &a, T &b)
    {
        T temp;
        temp=a;
        a=b;
        b=temp;
    }
    

    MfG SideWinder



  • template </.../> gilt nur für den nächsten codeabschnitt (bis zum ende der funktion oder der klasse)
    es muss heissen:

    #include <iostream>
    using namespace std;
    
    template <class T>
    void Swap(T &a, T &b);
    
    int main()
    {
    
        return 0;
    }
    
    template<class T>
    void Swap(T &a, T &b)
    {
        T temp;
        temp=a;
        a=b;
        b=temp;
    }
    

    aber am besten schreibst du das template in eine extra header klasse als ganzes, dann hast du mit solchen problemen nicht zu kämpfen, und dann ist es auch leserlicher

    edit: fuck! schon wieder 54 sec mehr gebraucht, das gibts doch nicht 😃

    edit2: what the f_u_c_k? 😮 ich meinte eigentlich "f_u_c_k" und nicht "love", was ist das für ein scheizdreck?? die hätten das zumindest durch "damn" ersetzen können, dann wäre es zumindest noch ein fluchwort 😡

    edit3: nein, jetzt mal ehrlich, wie wahrscheinlich ist es, dass das f*** wort in so einem forum nicht als fluchwort, sondern im ursprünglichen sinne benutzt wird, wo sind wir hier eigentlich??? 😃



  • Es geht, man muss es nur richtig machen 🙂

    #include <iostream>
    using namespace std;
    
    template <class T>
    void Swap(T &a, T &b);
    
    int main()
    {
    
        return 0;
    }
    
    template <class T>
    void Swap(T &a, T &b)
    {
        T temp;
        temp=a;
        a=b;
        b=temp;
    }
    


  • Nur nicht drängeln 😉

    MfG SideWinder



  • buhaha, den helfer hab ich aber um 16 sekunden geschlagen 😃


Anmelden zum Antworten