7
Aşağıdaki sorun var
:const ve non-const örnekleri için farklı copyCtor yazabilir miyim?
Obj o;
Obj o1(o), o1=o; // deep-copies
const Obj c(o), c=o; // deep-copies
const Obj c1(c), c1=c; // shallow-copies
Obj o2(c), o2=c; // deep-copies
nasıl tercihen miras olmadan yapabilirsiniz:
Bunu gereken bir sınıf var? (Ben Const_obj
aksi Obj
devralan yapacağını anlamına gelir.)
DÜZENLEME: o zaman ben kolayca yanlışlıkla değil klonlama yoluyla böcek tanıtmak çünkü doğrudan o.clone()
kullanma
bir seçenek değildir.
DÜZENLEME:
Son olarak, Scott Meyers tarafından Etkili C'den fikrini kullanarak tembel değerlendirme ile düzgün ve tam bir çözüm ++ yoktur. Cevabımı aşağıya bak.
Bir clone() yöntemi eklemeniz ve açıkça istediğinizi yapmanız gerekebilir. – Caribou
Bu, izlenebilir hataları koduma yazmamaktan kaçınmak istiyorum. Bu şekilde çok kolay. –
Şey, sessizce yapmanın çok daha tehlikeli olduğunu düşünüyorum - özellikle de işleri taşıdıktan sonra yeni birileri geliyor ... (My 2 penneth) – Caribou