Aşağıdakilerden birini bildirdiğimde “Beş Kural Kuralı” na göre: kopyalama veya taşıma işlemi ya da yıkıcıyı hepsini yazmalıyım, çünkü derleyici bunları benim için oluşturmuyor (bazıları). Ama eğer sınıfım (A
) bir sanal yıkıcıya sahip bir soyut sınıftan geliyorsa, bu, A
sınıfındaki yıkıcının "kullanıcı tanımlı" olarak kabul edileceği anlamına mı geliyor? Sonuç olarak, semantiklerin bu sınıfın A
nesnesiyle çalışmadığı, çünkü derleyici benim için bir taşıma yapıcısı oluşturmayacak mı? [Class.copy] olarakSoyut sınıflar ve semantik hareketleri
struct Interface {
virtual void myFunction() = 0;
virtual ~Interface() {};
};
struct A : public Interface {
void myFunction() override {};
};
Bir soyut sınıf başlatılamaz. –
Hangi derleyiciyi kullanıyorsunuz? – MikeMB
@MikeMB Belirli bir derleyici ile çalışmıyorum. – NiegodziwyBeru