SORU
10 Aralık 2008, ÇARŞAMBA


Nasıl türetilmiş sınıf, üst sınıf bir işlevi çağırmak için?

Nasıl türetilmiş bir sınıf C kullanarak ana işlevi arayayım mı ? Örneğin, bir sınıf parent, aradım ve bir üst sınıf türetilir child denir. İçinde her ders print bir fonksiyonudur. Çocuğun print tanımında velilere bir çağrı print yapmak istiyorum. Bunu nasıl yapıyor hakkında gitmek istiyorsunuz?

CEVAP
10 Aralık 2008, ÇARŞAMBA


Açık konuşmak gerekirse risk alırım, işlevini çağırın, eğer temel sınıfta tanımlı eğer türetilmiş sınıf private olmadığı sürece) otomatik olarak kullanılabilir.

Eğer türetilmiş bir sınıf aynı imzaya sahip bir fonksiyon varsa temel sınıfın adı iki nokta üst üste base_class::foo(...) takip ekleyerek bu belirsizliği ortadan kaldırmak. Java C#, C yok aksine dikkat etmelisinizdeğil"(super base) C beri karışıklığa neden olabilir multiple inheritance destekler. "temel sınıf için bir anahtar kelime var

class left {
public:
    void foo();
};

class right {
public:
    void foo();
};

class bottom : public left, public right {
public:
    void foo()
    {
        //base::foo();// ambiguous
        left::foo();
        right::foo();
    }
};

Bu arada, diğer temel sınıflardan birini ifade etmek için yolu yok bu yana iki defa doğrudan aynı sınıftan türetmek.

class bottom : public left, public left { // Illegal
};

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • cyriak

    cyriak

    29 Mart 2006
  • ipsy

    ipsy

    1 EKİM 2012
  • Mark Hyder

    Mark Hyder

    6 EKİM 2011