Thread overview
C++ - use of deleted function Hatası
Aug 12, 2016
İbrahim
Aug 12, 2016
İbrahim
August 12, 2016

Selamün Aleyküm;

Toast Toast::makeText(const QString& text, Duration duration)
{
 toast = QAndroidJniObject::callStaticObjectMethod(
     class_toast, "makeText",
     "(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast",
     QtAndroid::androidActivity().object(),
     QAndroidJniObject::fromString(text).object(),
     jint(duration));
 return *this; // -> Hatayı *this'de veriyor.
}

Aldığım hata şu:
'error: use of deleted function 'Toast::Toast(const Toast&)'
return *this;
^'
'
Toast::Toast(const Toast&)' böyle bir kurucu fonksiyonum yok ve '= delete' ifadesini hiçbir üye fonksiyonumda kullanmadım. Sebebi ne olabilir? Teşekkürler.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

August 12, 2016

Teşekkürler, lakin burada sadece *this ile sınıfın kendisini döndürüyorum, nasıl bir kopyalayıcı tanımlamam lazım?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

August 12, 2016

Aynı durum Toast'un üyelerinden birisi için geçerli olabilir. Kopyalayıcıyı kendimiz tanımlamazsak derleyici otomatik olarak tanımla(maya çalışı)r.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

August 12, 2016

O zaman sanırım tek dert, dönüş türünü 'Toast&' yapmayı unutmuş olman. Nesnenin kendisini döndürmek için bir referans döndürmen gerekir.

Bu arada, herkes öyle söylüyor ama tabii döndürülen şey sınıf değil, nesne. (Sınıf bu nesnenin türü ve türler döndürülemez.)

Eğer öyle olmasaydı ve gerçekten nesne kopyalamak isteseydin ve gerçekten üyelerden birisi kopyalamayı yasaklamış olsaydı, o durumda ne yapmanın doğru olacağına ancak sen karar verebilirdin. Örneğin, eğer iki Toast nesnesi o kopyalanamayan üyeyi paylaşabiliyor iseler o üyeyi değer olarak değil, referans veya gösterge olarak tutmak gerekirdi.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]