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

  • Bigapplemagic

    Bigapplemagi

    22 EYLÜL 2011
  • Joshua Kywn

    Joshua Kywn

    17 Mayıs 2010
  • modica89

    modica89

    24 HAZİRAN 2007