Standardargumente - Funktionsproblem
-
guten morgen

ich hab aus meinem Buch(C++ Primer, s.308/309) folgendes versucht:
std::string ScreenIt(std::string::size_type width = 80, std::string::size_type height = 60, char background = ' ') { std::string::size_type sum = width * height; return sum; }Doch wenn ich es aufrufen möchte(ohne Parameter):
ScreenIt();.. kommt folgende Fehlermeldung:
1>d:\c++\visual c++\test_cpp\test_cpp\test_cpp.cpp(13) : error C2664: 'std::basic_string<_Elem,_Traits,_Ax>::basic_string(std::basic_string<_Elem,_Traits,_Ax>::_Has_debug_it)': Konvertierung des Parameters 1 von '__w64 unsigned int' in 'std::basic_string<_Elem,_Traits,_Ax>::_Has_debug_it' nicht möglich 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char>, 1> _Ax=std::allocator<char> 1> ] 1> Konstruktor für struct 'std::basic_string<_Elem,_Traits,_Ax>::_Has_debug_it' ist als 'explicit' deklariert 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char>, 1> _Ax=std::allocator<char> 1> ]Hmpf.. ich hab alles aus dem Buch abgeschrieben und genau so abgerufen, wie es drinnensteht, aber irgendwas hab ich sicher vergessen od. falsch gemacht, nur was

Über Antworten würde ich mich natürlich sehr freuen
.. em ich meinte natürlich 
Mit freundlichen Grüßen,
Daniel
-
std::size_t screen_it(const std::size_t width = 80, const std::size_t height = 60) { return (width * height); }? ^^
-
(D)Evil schrieb:
std::size_t screen_it(const std::size_t width = 80, const std::size_t height = 60) { return (width * height); }? ^^
hallo (D)Evil,
wieso funktioniert das aber nicht mit std::string::size_type ??
Im Buch steht das mit der "Mal"-Rechnung nicht,wollte es aber Versuchen
Mit freundlichen Grüßen,
Daniel
-
Das ginge auch damit ... aber dein Rückgabewert deiner Funktion ist eine Zeichenkette ... da aber std::string::size_type keine Zeichenkette ist ... bums!
-
Hallo,
size_t ist im normalfall der size_type, aber in Deinem Code gibst ja std::string zurück. Falsch abgetippt?
-
(D)Evil schrieb:
Das ginge auch damit ... aber dein Rückgabewert deiner Funktion ist eine Zeichenkette ... da aber std::string::size_type keine Zeichenkette ist ... bums!
ja,sorry, ich hab mich echt geiirt.
Aber danke trodzdem für die nette Hilfe
templäd schrieb:
Hallo,
size_t ist im normalfall der size_type, aber in Deinem Code gibst ja std::string zurück. Falsch abgetippt?hab ich auch gerade bemerkt,dass es std::string zurückgibt, hab zuerst geglaubt, es sei ein std::string::size_type noch, aber da hab ich was verwechseln.
Danke Leute für die NETTE HILFE
