Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Defaultparameter für Stl Container

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
10.09.2003, 17:19 Uhr
~Frank
Gast


Hallo.

Ich möchte in einem Konstruktor ein vector<map<string, string> > an ein Klassenmember zuweisen. Dabei soll der Parameter beim KTor Aufruf auch weggelassen werden können, so daß dann ein leerer Container einem anderen zugewiesen wird.

Ich weiß aber nicht was ich da als Defaultparameter hinschreiben soll (wie z.B. bool flag = true oder int flag = 0) Geht das überhaupt?

Hoffe habe mich verständlich ausgedrückt

Frank

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.09.2003, 17:45 Uhr
~StefanD
Gast


Meinst du sowas:

Code:
class MyClass {
public:
   MyClass(const vector<foo> &v = vector<foo>());
};




Stefan.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
10.09.2003, 20:10 Uhr
~Frank
Gast


Jupp, das meinte ich. Stand wohl etwas aufm Schlauch...



 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
11.09.2003, 11:17 Uhr
~Frank
Gast


Hi.

War gestern wohl etwas voreilig, hab das nur mit vector und nicht mit map getestet.
Also folgender Code kann nicht vom gcc 2.95.2 und 3.3 übersetzt werden.
(parse Error Zeile 5). Muß aber doch syntaxmäßig korrekt sein...


Code:
#include <map>

class test{
public:
    test(const std::map<int, int> &t = std::map<int, int>()) {
        t2 = t;
    }
private:
    std::map<int, int> t2;

};

int main(void) {
    test g;
    return 0;
}





Gruß Frank
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
11.09.2003, 11:31 Uhr
virtual
Sexiest Bit alive
(Operator)


Führ doch einfach ein typedef ein. Ist Übersichtlicher und funktioniert dann auch:

C++:
#include <map>

class test{
public:
typedef std::map<int,int> int_map;

    test(const int_map& t = int_map()) {
        t2 = t;
    }
private:
    int_map t2;

};

int main(void) {
    test g;
    return 0;
}


Der parser error liegt meiner Meinung nach den dem Komma, mit dem die templateparameter getrennt werden.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 11.09.2003 um 11:36 Uhr von virtual editiert.
 
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: