WinMaker (): _hwnd (0) {} ??
-
Hier ist eine Klassendefinition die ich in einem WinAPI Tutorial online gefunden habe:
class WinMaker { public: WinMaker (): _hwnd (0) {} WinMaker (char const * caption, char const * className, HINSTANCE hInstance); void Show (int cmdShow) { ::ShowWindow (_hwnd, cmdShow); ::UpdateWindow (_hwnd); } protected: HWND _hwnd; };
Mit der folgenden Zeile habe ich Problem, da ich die Syntax leider nicht verstehe... vielleicht kann mir wer auf die Sprünge helfen
WinMaker (): _hwnd (0) {}
-
p.s.: Danke im Voraus!
-
da wird _hwnd mit 0 initialisiert.
-
Original erstellt von dEUs:
da wird _hwnd mit 0 initialisiert.Danke, dass habe ich mir schon gedacht!
Nur wie heisst so eine Initialisierung bei der die Variable quasi als Funktion mit aufgerufen wird um sich selbst zu initialisieren?
-
Sowas nennt man eine Initialisierungsliste. Die macht man in dieser Form:
Sei Klassenname der Name der Klasse:
Klassenname(Konstruktorparameter) : var1(init1),var2(init2),var3(init3) { blablabla };Du hast also erstmal einen "normalen" Konstruktor. Wenn der nur aus Zeilen in der art Membervariable1 = blabla; Membervariable2 = blabla; besteht, dann sind Initalisieurngslisten schneller geschrieben udn sollen angeblich auhc schneller in der Ausführung sein. Du sparst dir damit also den Konstruktor, daher ist der Konstruktorkörper dann meistens leer ( {} ).
-
Hallo,
schon mal einen Blick in die FAQs geworfen?
Konstruktor & Initialisierung