Çoğu zaman, nesnenin arayüzünü izole etmek için soyut bir temel sınıfın olması iyi bir fikirdir.
Sorun, kopya yapısının (IMHO) C ++ 'da varsayılan olarak kopuk olması ve kopya kurucularının varsayılan olarak üretilmesidir.
Peki, soyut bir temel sınıf ve türetilmiş sınıflarda ham işaretçiler olduğunda gotchalar nelerdir?
class IAbstract
{
~IAbstract() = 0;
}
class Derived : public IAbstract
{
char *theProblem;
...
}
IAbstract *a1 = new Derived();
IAbstract a2 = *a1;//???
Ve şimdi tüm hiyerarşi için kopya yapısını temiz bir şekilde devre dışı bırakıyor musunuz? Kopya yapımını özel olarak ilan ettiniz IAbstract
mi?
Soyut temel sınıfları olan üç kural var mı?