Default value für T
-
Hallo
Habe eine template basierte Basisklasse. Diese Klasse hat nun die Variable:
T m_value
Diese würde ich nun gerne im Konstruktor initialisieren. Gibt es da so ne Art default Wert, wie in z.B. c# oder muss ich das jeweils in den abgeleiteten Klassen implementieren?
-
T sollte in diesem Fall einen Default Constructor haben.
Oder Du kanst natürlich auch einen konstanten Wert initialsieren. z:b. 0 oder -1, nur dann muss eben für int/long/double auch ein Konstruktor vorhanden sein.
-
Im allgemeine Fall (d.h. für eigene Klassen als auch Basisdatentypen) am besten im Konstruktor der Template-Klasse:
MyClass<T>::MyClass() : m_value(T()) { }
sonst ist bei POD-Typen nicht garantiert, daß diese mit dem Default-Wert (d.h. 0) initialisiert werden.
-
also ich kann einfach mit T() initialisieren. dann steht bei double 0.0 drin und bei bool false. richtig?