Gegeben:Intercept C++ implizit Copykonstruktor oder rufen Sie seine Funktionalität
class Foo {
private:
static int cntFoos;
//... stuff...
public:
Foo() { cntFoos++; }
~Foo() { cntFoos--; }
};
... wo „Stoff“ jeder Satz von Eigenschaften sein kann. (Die Idee ist, einen Zähler von Instanzen dieser Klasse haben)
Dann:
Foo aFoo;
Foo twoFoo=aFoo;
Wird die automatische Copykonstruktor aufrufen und so würde ich dieses vermissen zu zählen.
Gibt es eine Möglichkeit, den Zähler so zu speichern, dass er die automatisch erstellten neuen Instanzen wiedergibt? Wenn ich den expliziten Kopierkonstruktor implementiere, muss ich alle Eigenschaften einzeln zuweisen. Allerdings möchte ich eine flache, Memberwise-Kopie. Ich muss keine tiefe Kopie durchführen, daher scheint es unnötig, einen expliziten Kopierkonstruktor zu implementieren.
Gleiche wie ein Zeiger Handling (aber nur zu zählen, hier). Nachschlage-Regel von drei (fünf C++ 11) –
Überladen Sie den Kopierkonstruktor. – user2970916