Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Probleme mit Templates

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
27.12.2005, 16:02 Uhr
~der Peter
Gast


Also, mein Code:


Code:
# ifndef __QUICKSORT_HEADER__
# define __QUICKSORT_HEADER__

#include <vector>
#include <iostream>

using namespace std;

template <class clst=double> class sortMachine {
    public:void out(vector<clst>& a) {
        // Fehler tritt in der nächsten Zeile auf!
        for(vector <clst>::iterator it = a.begin(); it != a.end(); it++) {
            cout << *(it) << " ";
        }
    }
};
# endif



Das Problem is die Zeile nach dem Kommentar. Wenn ich statt "clst" z.b. "double" reinschreib, dann tuts. Da ich aber nich weiß ob ich nen double, int oder sonst was als Argument hab, muss ich das irgendwie umgehn. was kann ich da machen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.12.2005, 17:11 Uhr
0xdeadbeef
Gott
(Operator)


So geht's:

C++:
        for(typename vector <clst>::iterator it = a.begin(); it != a.end(); it++) {


vector<int> ist wahrscheinlich im header bereits konkretisiert, desewgen weiß der Compiler, dass es sich bei vector<int>::iterator um einen Typnamen handelt. Für clst ist das nicht der Fall, da könnte zum Beispiel später

C++:
template<> class vector<foo> { public: int iterator; };


kommen. Damit der Compiler weiß, was er da erwarten soll, muss man in solchen Fällen explizit deklarieren, dass es sich um einen Typnamen handelt.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: