Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (GNU/Linux, *NIX, *BSD und Co) » Defaultwerte in Konstruktoren

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
03.04.2014, 14:51 Uhr
Yadgar



Hi(gh)!

Folgendes Problem: ich habe eine (im Moment noch ziemlich rudimentäre) Klasse für SVG-Rechteckobjekte programmiert; weil in SVG die Attribute x und y (Koordinaten der linken oberen Ecke) standardmäßig auf 0 gesetzt sind, wollte ich dieses Verhalten in C++ nachbilden und habe den Konstruktor entsprechend programmiert:


C++:
class SVG_rectangle
{
  unsigned int startx;
  unsigned int starty;
  unsigned int width;
  unsigned int height;
public:
  SVG_rectangle(unsigned int=0, unsigned int=0, unsigned int, unsigned int);
};

SVG_rectangle::SVG_rectangle(unsigned int x, unsigned int y, unsigned int w, unsigned int h)
{
  startx = x;
  starty = y;
  width = w;
  height = h;
}

int main(int paramn, char* params[])
{
  SVG_rectangle rec_01(100, 100);
  SVG_rectangle rec_02(40, 20, 150, 75);



Leider funktioniert das nicht, ich bekomme folgende Fehlermeldung:


Code:
yadgar@debian:/media/Raytracing/Povscn/Flags/Coats of Arms$ g++ -std=c++11 flagmaker.cc -o flagmaker
flagmaker.cc:31:3: error: default argument missing for parameter 3 of
‘SVG_rectangle::SVG_rectangle(unsigned int, unsigned int, unsigned int, unsigned int)’
flagmaker.cc:31:3: error: default argument missing for parameter 4 of
‘SVG_rectangle::SVG_rectangle(unsigned int, unsigned int, unsigned int, unsigned int)’



- obwohl laut SCHADER, KUHLINS: Programmieren in C++, Springer 1993, S. 201-203 Konstruktoren durchaus so formuliert werden dürfen! Könnte es daran liegen, dass im C++11-Standard nur noch entweder gar keine oder alle Übergabevariablen Defaultwerte haben können? Wenn ich für w und h ebenfalls Defaultwerte einsetze, funktioniert es nämlich wieder...

Bis bald im Khyberspace!

Yadgar
--
Flagmaker - ein Programmier-Blog
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
03.04.2014, 15:38 Uhr
Tommix



Hallo,
Default-Parameter müssen immer als letztes kommen (also ganz rechts).

Gruß,
Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (GNU/Linux, *NIX, *BSD und Co) ]  


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: