Im folgenden Codefragment verfügt MyClass
über eine statische Methode, die den gemeinsamen Zeiger zurückgibt. Um den Code übersichtlich zu gestalten, verwenden wir den Alias MyClassPtr
für std::shared_ptr<MyClass>
.Rückgabewerte der statischen Methode shared_ptr
Um dies zu erreichen, deklarieren wir jedoch die Klasse vor der Deklaration des Shared-Pointer-Alias, der dann der eigentlichen Klassendeklaration folgt. Es sieht ausführlich aus.
Gibt es eine Möglichkeit, den Code so zu reorganisieren, dass
- halten den
MyClassPtr
alias (es über das Projekt gemeinsam genutzt wird) - ohne "erklärt"
MyClass
zweimal
Code unten:
class MyClass;
using MyClassPtr = std::shared_ptr<MyClass>;
class MyClass {
public:
static MyClassPtr createMyClassInstance();
private:
/*Other members & methods*/
}
Ich bin OK mit dem aktuellen Imp Lementierung. Aber ich möchte den Ratschlag des erfahrenen Kerls suchen, wenn der Code verbessert werden kann.
In Verbindung stehend? Duplikat? https://stackoverflow.com/questions/1008019/c-singleton-design-pattern – Galik
Es gibt nichts mit dem Singleton-Muster hier zu tun ... Keine Ahnung, warum es ein Duplikat ist ... – hackjutsu