SORU
11 HAZİRAN 2009, PERŞEMBE


Neden yapıcı şablon parametre anlaması değil mi?

benim sorum bugün oldukça basit: neden derleyici fonksiyon parametreleri yapabildiği kadar sınıf kurucularını şablon parametreleri gerçekleştirip, olmaz mı? Örneğin, aşağıdaki kod geçerli bir neden olamaz:

template<typename obj>
class Variable {
      obj data;
      public: Variable(obj d)
              {
                   data = d;
              }
};

int main()
{
    int num = 2;
    Variable var(num); //would be equivalent to Variable<int> var(num),
    return 0;          //but actually a compile error
}

Dediğim gibi, yani benim soru bu geçerli olmadığını anlıyorumnedendeğil mi? Bu izin, herhangi bir büyük sözdizimsel delik oluşturmak istiyorsunuz? Bu işlev, bir tür çıkarım sorunlara neden olur) istemez bir örneği var mı? Sadece uygun oluşturulmuş sınıflar için işlevler için, henüz şablon çıkarım izin arkasındaki mantığı anlamaya çalışıyorum.

Teşekkürler

CEVAP
12 HAZİRAN 2009, Cuma


Kurucu her zaman sınıfının giriş (yapımcı ve işletmeci= kopya bahsediyorum) yeri olmadığı için geçerli değil bence. Senin gibi sınıfı kullanıyorsunuz sanırım bu yüzden :

MyClass m(string s);
MyClass *pm;
*pm = m;

Eğer çözümleyici Şablon Türü Sınıfım başbakanın ne olduğunu bilmek için çok belli olurdu emin değilim;

Bence söylediği mantıklı ama bazı yorum eklemek için çekinmeyin, bu ilginç bir soru.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • André Frizzo

    André Frizz

    16 Aralık 2006
  • Doug Bernards

    Doug Bernard

    7 Kasım 2007
  • Maya Learning Channel

    Maya Learnin

    23 HAZİRAN 2010