Template in Klasse und Mehtode && Verwendung von struct's



  • Hallo,

    1.) Wie löse ich folgendes auf

    Header

    template<class A>
    class Hello {
    
      A b;
    
      template<class X>
      void func(const X& val);
    }
    

    Eclipse zeigt mir einen Fehler bei diesem Versuch

    template<class A>
    template<class X>
    void Hello<A>::func<X>(const X& val)
    {
    }
    

    Was ist falsch?

    2.) Ich möchte meinen Programmierstil immer weiter verbessern und stieß
    neulich in der STL auf ein paar merkwürdige Konstilationen. Es geht konkret um struct und Klassen C++.

    Anscheinend kann man mit einer struct sehr viel machen. Konstruktor, Methoden, Vererbung, ...

    sogar (entdeckt bei basestring im gcc)

    struct XYZ {}XYZ;
    
    class Abc : XYZ {
    }
    

    - Wann und wie ist der Einsatz von struct sinnvoll?
    - Gibt es einen Unterschied zwischen struct und class in C++?

    - Was muss erfüllt sein, dass ich eine sogenannte C struct habe?

    Gruß
    Thomas



  • 1. Lass bei func mal <X> weg.

    2. struct ist eigentlich mit class äquivalent. Der Unterschied ist, dass die Member bei struct standardmässig public sind und standardmässig public und nicht private geerbt wird. Ist hauptsächlich zur Abwärtskompatibilität zu C vorhanden.


Anmelden zum Antworten