EDIT: Dies ist eine Diskussion über Best Practice in dem unten dargestellten (vereinfachten) Fall. Welches Werkzeug, welcher Codierungsstil oder was auch immer Sie vorschlagen möchten, posten Sie es. Danke.
Warum gibt es keine speziellen Möglichkeiten, Ctors / Dtors zu deklarieren oder zu definieren, ohne den Namen der Klasse zu duplizieren? Es ist ärgerlich, vor allem beim Prototyping und am Ende, den Namen der Klasse zu ändern.
Was ich meine, ist etwas mit typedef wie folgt:
%Vor%Es funktioniert nur für ctors und nur auf MSVC; Ich benutze es und obwohl es kein großes Feature ist, macht es das Leben einfacher. Dies ist ein triviales Beispiel, aber stellen Sie sich eine ziemlich komplizierte Struktur vor. (Ein praktischer Nebeneffekt ist auch, dass Sie einen Alias in der Klasse haben, ohne seinen Namen verfolgen zu müssen.) Fehle ich etwas? Bin ich wirklich der einzige, der das braucht? Der Punkt ist nicht, ob es kompiliert, der Punkt ist, dass ich es teilweise überall für mich arbeiten lasse und es Wunder tut. Bis ich den Standard erreiche ... (Dies ist keine Compliance-Diskussion.)
Schon mal von Suchen und Ersetzen gehört?
Ich nehme an, dass die meisten Leute entweder ex
, vim
, sed
verwenden. etc: s/search/replace/g
oder äquivalent, um den Namen ihrer Klassen zu ändern, oder ändern Sie sie nicht so, dass sie durch das Fehlen dieser Funktion oft gestört werden.
Sie könnten eine #define
verwenden, um dies zu tun:
Was mich verärgert, ich stimme zu, ist das Fehlen einer Standardmethode, um auf die Basisklasse (n) eines Typs zu verweisen - ich normalerweise privat typedef ... base_t
in Klassen, dann verwende das für Initialisiererlisten usw .
Wenn Ihre Klassennamen frustrierend langatmig werden, sollten Sie mehr namespace
verwenden.
namespace
, kombiniert mit using
, ist großartig, um Ihre Typnamen nur so ausführlich zu machen, wie es der jeweilige Kontext erfordert.
Tags und Links c++ constructor visual-c++ typedef destructor