SORU
30 Kasım 2009, PAZARTESİ


C statik sanal üyeleri?

C Olası hem statik hem de sanal bir üye işlevi var mı? Görünüşe göre, bunu yapmak için basit bir yol (static virtual member(); complie bir hata) değil, ama en azından aynı etkiyi elde etmek için bir yol var mı?

I. E:

struct Object
{
     struct TypeInformation;

     static virtual const TypeInformation &GetTypeInformation() const;
};

struct SomeObject : public Object
{
     static virtual const TypeInformation &GetTypeInformation() const;
};

Sense comparsions için yararlı ve şablonlar için hayati olan bir sınıf (SomeObject::GetTypeInformation()) bir örneği (object->GetTypeInformation()) ve GetTypeInformation() kullanmak için yapar.

Aklıma gelen tek yolu bir fonksiyon, sınıf başına, sabit veya kullanım makrolar / iki işlev yazma içerir.

Başka bir çözüm?

CEVAP
30 Kasım 2009, PAZARTESİ


Hayır, Object::GetTypeInformation() aradığında ne olacağını beri yapmak için bir yol yok mu? Sınıf sürümü ilişkili bir nesne yok beri aramak için türetilmiş hangisi olduğunu bilemez.

Size bir statik olmayan sanal işlevi düzgün çalışmıyor; eğer sen de istiyorsan arama yapabilmek için belirli bir türetilmiş sınıf sürümü olmayan hemen hemen olmayan bir nesne örneği Zorundasınız sağlamak ikinci redunduant statik olmayan sanal versiyonu gibi.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • alex maybury

    alex maybury

    20 Aralık 2007
  • Huot Media

    Huot Media

    7 Mayıs 2010
  • Titan Lee Hai

    Titan Lee Ha

    14 Temmuz 2008