Dane:Intercept C++ niejawna kopia konstruktor, lub wywołać jego funkcjonalność
class Foo {
private:
static int cntFoos;
//... stuff...
public:
Foo() { cntFoos++; }
~Foo() { cntFoos--; }
};
... gdzie "rzeczy" może być dowolny zestaw właściwości. (Chodzi o to, aby mieć licznik wystąpień tej klasy)
wówczas:
Foo aFoo;
Foo twoFoo=aFoo;
wywoła konstruktor automatycznego kopiowania, a więc ja tęsknię licząc tego.
Czy istnieje sposób na zachowanie tego licznika odzwierciedlającego automatycznie nowe wystąpienia? Jeśli zaimplementuję konstruktora jawnej kopii, będę musiał przypisać wszystkie właściwości jeden po drugim. Jednak I chce mieć płytką, zgodną z oryginałem kopię. Nie muszę wykonywać głębokiej kopii, więc wydaje się, że wiele niepotrzebnej pracy wymaga implementacji jawnego konstruktora kopii.
Taka sama jak obsługa wskaźnik (ale tylko licząc, tutaj). Wyszukaj regułę trzech (pięć C++ 11) –
Przeciążenie konstruktora kopiowania. – user2970916