2011-01-09 5 views
10

Beispiel: Thread::Thread:Wie sollte ich einrücken tun nichts Initialisierung Liste Konstruktoren?

class Thread 
{ 
    Process * parent_; 
    unsigned __int32 id_; 
    void * entryPoint_; 
public: 
    Thread(Process * parent, unsigned __int32 id, void * entryPoint) : 
     parent_(parent), 
     id_(id), 
     entryPoint_(entryPoint) 
    { 
    } 
    unsigned __int32 GetId() const 
    { 
     return id_; 
    } 
    void * GetEntryPointAddress() const 
    { 
     return entryPoint_; 
    } 
}; 

Ich kann nicht mit einem Weg zu kommen einzurücken Dinge scheint so dass es nicht seltsam aussieht ... und doch ist dies ein weit verbreitetes Muster. Was sind gängige Methoden, um dies einzudämmen? Diese

+0

Da ich solche Fragen schon einmal beantwortet habe: Solange es dir egal ist, ist es egal. :) (Das heißt, ich bin neugierig, warum Sie denken, dass es seltsam aussieht. Es sieht für mich vollkommen in Ordnung. :) – greyfade

+0

alles in eine Zeile setzen und nicht darüber nachdenken! : D – ybungalobill

+1

@greyfade: Ein Teil der Konsistenz ist es zu tun, was andere tun. Ich habe noch nie jemanden gesehen, der eine Meinung dazu äußert, also habe ich gefragt. Ich weiß nicht genau warum - macht mich nur aus irgendeinem Grund zusammenzucken. @Ybungalobill: Das erschwert die Zusammenführung von Dingen in der Quellcodeverwaltung. –

Antwort

17

Ich lege immer leere Blöcke auf einer einzigen Zeile - d. H. { } (beachten Sie den Platz!).

Darüber hinaus habe ich in der Regel den Doppelpunkt und Kommas vor die Initialisierungsliste Mitglieder statt nach - das macht das Hinzufügen von Mitgliedern später leichter.

Thread(Process * parent, unsigned __int32 id, void * entryPoint) 
    : parent_(parent) 
    , id_(id) 
    , entryPoint_(entryPoint) 
{ } 
+0

BTW (auch wenn ich diesen Stil nicht verwende), kann dieser Stil gut sein, weil MS Visual Studio nicht der einzige ist, der seine automatische Formatierung durcheinanderbringt. – anatolyg

+2

Manchmal, wenn es aussieht, als sollte Code sein, füge ich einen Kommentar/* bewusst leer */(aber nur, wenn es erklärt werden muss). –

+0

@Martin: Würden Sie hier einen hinzufügen? –

3

ist, wie ich es tun:

Thread(Process * parent, unsigned __int32 id, void * entryPoint) 
    :parent_(parent), 
    id_(id), 
    entryPoint_(entryPoint) 
{} 

Aber Ihre Art und Weise sieht nicht mir fremd.

2

Hier ist, wie ich es tun

public: 
    Thread(Process * parent, unsigned __int32 id, void * entryPoint) : 
    parent_(parent), 
    id_(id), 
    entryPoint_(entryPoint) 
    { } 

Google-Stil (atleast protobuf), wäre:

public: 
Thread(Process * parent, 
     unsigned __int32 id, 
     void * entryPoint) 
    : parent_(parent), 
    id_(id), 
    entryPoint_(entryPoint) { } 
2

Hier ist, wie ich es tun, und warum ich sehe nichts falsch mit der Probe:

Thread(Process * parent, unsigned __int32 id, void * entryPoint) : 
     parent_(parent), 
     id_(id), 
     entryPoint_(entryPoint) { } 

Soweit es mich betrifft, tun Sie es auf Ihre Art und Weise: Solange Sie selbstkonsistent und konsistent mit dem Projekt, an dem Sie arbeiten, ist es nicht Angelegenheit, was Ihr Eindruck Stil ist.

0

Ich würde empfehlen, einen Kommentar in den leeren Konstruktor-Körper zu setzen, damit jeder, der den Code liest, weiß, dass Sie ihn leer haben wollten. Auf diese Weise können Sie sicher sein, dass Sie nicht vergessen haben, dort Code einzufügen.

Thread(Process * parent, unsigned __int32 id, void * entryPoint) : 
    parent_(parent), 
    id_(id), 
    entryPoint_(entryPoint) 
{ 
    // empty 
} 
+1

weißt du was, ich mag das eigentlich nicht, weil es jemanden verängstigen wird, Code später hier zu schreiben. Aber wenn es notwendig ist, sollte der Betreuer nicht in ein Denken mit einbezogen werden, um das nicht durch einen unheimlichen Kommentar zu tun. –

+0

"leer" ist ein unheimlicher Kommentar, wirklich? Ich denke, man könnte deutlicher sein, z.B. "// Ich habe absichtlich keinen Code hierhin geschrieben, aber Sie gehen weiter, wenn Sie denken, dass es das Richtige ist", aber ich denke, das könnte etwas übertrieben sein. Jeder Kommentar wird für einen Betreuer weniger beängstigend sein, als ihn dazu zu zwingen zu versuchen, die Absicht des ursprünglichen Autors zu erraten, da keine Hinweise darüber vorhanden sind, warum der Methodenkörper leer ist. –

Verwandte Themen