Problem mit init
-
Anfängerfrage
: Warum wird hier keine Instanz des Objektes erzeugt? Bei base b gibts Fehler.
template <class T> class base { private: public: deque<T>init(deque<T>const &T); }; template <class T> deque<T> base<T>::init(deque<T>const &de) { ; } int main() { deque<int>deq; base b; deq = b.init(deq); return 0; }
-
du hast vergessen ein return in init() einzufügen...
-
Ich erhalte leider immer noch Fehler:
Fuer die Verwendung einer Vorlagenklasse ist eine Vorlagen-Argumentliste erforderlich.
-
Das ist aber nicht der Fehler. Ein vergessenes return verursacht höchstens Warnungen bzw. UB. Ganz einfach: base ist keine Klasse, sondern ein Template, und muss daher mit Template-Parameter zusammen verwendet werden
base<int> b;
-
Ingo schrieb:
Ich erhalte leider immer noch Fehler:
Fuer die Verwendung einer Vorlagenklasse ist eine Vorlagen-Argumentliste erforderlich.
*argh* sorry, ich bin blind.
base ist ja Template, du musst deshalb base<int> b; schreiben - schliesslich kann er sich das int ja ncht herzaubern
-
Nein, ich bin der blindeste. Danke!
-
Ich hoffe, ich darf nochmal fragen... warum erhalte ich hier einen Fehler?
template <class T> class base { private: public: deque<deque<T> >init(deque<deque<T> >const &); }; template <class T> deque<deque<T> >base::init(deque<deque<T> >const &de) //hier Fehler { return de; } int main() { /*deque<deque<float> >deq; base <float>b; deq = b.init(deq);*/ return 0; }
-
[quote="Ingo"]
template <class T> deque<deque<T> >base::init(deque<deque<T> >const &de) //hier Fehler
Es muss base<T> heissen