enum und structs in die Klasse oder ausserhalb
-
Packt man enums und structs die man in Zusammenhang mit einer Klasse verwendet in die Klasse oder global in die Datei in der die Klasse definiert ist.
-
Kann man pauschal nicht sagen.
Sind sruct und enum nur in dieser Klasse und in deren Kontext gültig würde ich sie in die Klasse setzen.Sag mal ein Beispiel...
-
Also die enums und structs werden in der Klasse verwendet aber auch in Callbacks die Wiederrum von dieser Klasse initiiert werden.
Also hier mal ein Beispiel:
struct MyStruct { bool ready int state; } void Callback(PVOID lpParam) { MyStruct *args = (MyStruct*)lpParam; MachWasMitdenArgs(args); } class myclass { myclass() : m_mystruct(NULL) { } ~myclass() { if( m_mystruct != NULL ) delete mystruct; } AddFunction() { m_mystruct = new MyStruct(); m_mystruct->ready = true; m_mystruct->state = 0; ExecuteCallback(Callback,(PVOID)m_mystruct); } MyStruct *m_mystruct; };
So nun die Frage: Besser MyStruct in die Klasse. Oder eventuell auch gleich die Callback auch als statische Methode in die Klasse?
-
Jetzt habe ich doch ein Beispiel genannt.
-
Ich würde Callback und Mystruct in die Klasse legen.
-
Ok. Danke. Aber Regel gibts da keine dafür? Was war dein Entscheidungsgrund?
-
Weil der Clalback nur für diese Klasse zur Verfügung stehen muss. Und die Struktur auch nur internas bewegtund speichert. Warum also in einem äußeren Scope sichtbar machen?
Ich würde die struct und statische Funktion sogar private/protected machen.
Regel: Mach nur das nach außen sichtbar was auch notwedig ist.
-
Alles klar. Danke