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

  • RickardRick

    RickardRick

    9 Mart 2007
  • WePlayWeWatch

    WePlayWeWatc

    3 Temmuz 2013
  • Whizzpopping

    Whizzpopping

    10 Kasım 2005