2010-12-16 7 views

Antwort

5

Sie müssen den Standardwert in der Klassendefinition in die Header-Datei einfügen.

class CBaseClass { 
    .... 
    LRESULT OnTestFunction(WPARAM id, LPARAM=0); 
    .... 
}; 
0

Sollte ein Name des Parameters in der Signatur nicht vorhanden sein? Wie:

LRESULT CBaseClass::OnTestFunction(WPARAM id, LPARAM optional = 0) 
{ 
    ... 
} 
+1

Nein, es ist nicht erforderlich. –

+0

Ja, das ist richtig für die Header-Datei, aber wie würden Sie es ohne Namen im Körper der Methode verwenden? Oder ist es möglich, einen Standardwert-Parameter für die Basisklassenmethode ohne Namen anzugeben, in der Annahme, dass jemand, der sie überschreibt und beabsichtigt, diesen Namen zu verwenden, später den Namen angibt? – merxbj

+0

Offensichtlich würden Sie nur den Namen weglassen, wenn Sie den Parameter sowieso nicht verwenden würden. – MSalters

4

Der Standardwert in der Klassendefinition sein sollte:

class CBaseClass { 
    LRESULT OnTestFunction(WPARAM id, LPARAM=0); 
}; 

, so dass die abgeleitete Klasse, die Unterschrift und den Standardwert sehen.