SORU
18 Ocak 2010, PAZARTESİ


uygulama ile saf sanal işlev

Benim temel anlayış saf sanal işlevi için, ancak saf sanal işlev için uygulama olabileceğini söylediler uygulama yok.

class A {
public:
    virtual void f() = 0;
};

void A::f() {
    cout<<"Test"<<endl;
}

Kod yukarıda TAMAM mı?

Saf sanal işlevi bir uygulama yapmak amacı nedir?

CEVAP
18 Ocak 2010, PAZARTESİ


Saf sanal işlevi doğrudan oluşturulacak türetilmiş bir tür, ancak temel türü hala bir uygulama tanımlayabilirsiniz uygulanması gerekir. Türetilmiş bir sınıf olabilir açıkça çağrı temel sınıf uygulaması (eğer erişim izinleri izin) kullanarak bir tam kapsamlı adı (arama A::f() örnek - eğer A::f() kamu ve korumalı). Gibi bir şey

class B : public A {

    virtual void f() {
        // class B doesn't have anything special to do for f()
        //  so we'll call A's

        // note that A's declaration of f() would have to be public 
        //  or protected to avoid a compile time problem

        A::f();
    }

};

Kullanmak durumunda edebileceğimi kapalı üst başım ne zaman var daha fazla veya daha az makul varsayılan davranış, ama sınıf tasarlanmış istediği tür-varsayılan davranış için çağrılması sadece açıkça. Ayrıca, her zaman kendi işlerini gerçekleştirmek için türetilmiş sınıfları istediğiniz ne durumda olabilir, ama aynı zamanda işlevsellik kümesini aramak mümkün olabilir.

Not o halde gerçek dil, değil bir şey görüyorum sık kullanılan (ve aslında bu yapılabilir gibi görünüyor sürpriz en C programcıları, hatta deneyimli olanlar).

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FF Radio

    FF Radio

    16 Mayıs 2008
  • Jucyber Tutoriais

    Jucyber Tuto

    8 EYLÜL 2009
  • Wronchi Animation

    Wronchi Anim

    9 Mayıs 2011