Если ты таким образом отслеживаешь владение, то лучше вообще не с сырыми указателями работать, а с `std::shared_ptr`. Иерархии — это, конечно, круто, но ИМХО скорее только для гуев подходят.