Merhaba.

public class A : public virtual QWidget{

}

public class B : public virtual QWidget{

}

public class C: public A,B{

}

public class main{
    C c;
    c.setWindowTitle("test");
}

Bu zaman QObject-ler error veriyor.Çünkü QWidget: public QObject olduğu için linkerde sorun oluyor bence. Problemin adı diamond problem.Google-da bununla ilgili makaleler var.Ama çoğu sade classlarla yani QWidgetsiz classlarda anlatılıyor.Sade classlarda deniyorum sorun yok.Amma QWidget yazdığım zaman QObject invirtual türemesi sorun oluyor.Çözüm yolu nedir? Teşekkürler.

soruldu: 25 Haz '14, 05:38

Serxan's gravatar image

Serxan
51691106107
cevap kabul oranı: 46%

değiştirildi: 25 Haz '14, 06:07

AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

AliRıza Adıyahşi ♦
7.9k146288


Burdaki sorun A ve B nin ikisinden QWidget dan miraslanmış olması bence. sen, c.setWindowTitle("test"); işlemini yaptığında A dan mı yoksa B den mi miraslanan metodu çalıştıracağını anlayamıyor framework. A ya da B class'larında birini QWidget dan miras yapmadan denediğinde çalışacaktır..

permanent link

cevaplandı: 25 Haz '14, 06:13

M%C3%BCsl%C3%BCm%20%C3%96ZT%C3%9CRK's gravatar image

Müslüm ÖZTÜRK
10.6k103690
cevap kabul oranı: 28%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1
×1
×1
×1

Soruldu: 25 Haz '14, 05:38

Görüntüleme: 342 kez

Son güncelleme: 25 Haz '14, 06:13

Benzer sorular

powered by BitNami OSQA