2011-03-13 13 views
6

Tam olarak uzman bir sınıf şablonunun içinde statik bir üye bulunamıyorum!Tam özellikli bir sınıf şablonunda statik bir elemanı ilklendirin

aşağıdaki yapmaya çalışıyorum:

template<> 
int X<int>::Value = 0; 

O derleme değil:

template<typename Type> 
class X 
{ 
}; 

template<> 
class X<int> 
{          
    public: 

    static int Value; 
} 

Ama statik üyesi init gibi olamaz, ben gibi her şeyi denedim Bu nedenle, aslında bunu yapmak için herhangi bir işaretçi güzel olurdu;)

Düzenleme: altındaki yanıt doğrudur, ancak init dosyasını .cpp dosyasına yerleştirmeniz gerekir. ile.

Zaman ayırdığınız için teşekkür ederiz, Richard. Valuetemplate<> çünkü [bu durumda X<int>] açıkça uzman sınıfın üyesi tanımında izin verilmez tanımlarken

cevap

6

template<> kullanmayın. Üstelik sen }

Bu works for me sonra noktalı virgül eksik: - Yararlı bilgiler, teşekkürler

template<typename Type> 
class X 
{ 
}; 

template<> 
class X<int> 
{          
    public: 

    static int Value; 
}; 

int X<int>::Value = 0; 
+0

"şablonunu <> açıkça uzman sınıfın üyesi tanımında izin verilmez"! – Xeo

+0

Şablonu <> kullanarak ve init dosyasını .cpp dosyasına yerleştirerek (örneğiniz tarafından belirlendiğim için) teşekkürler. Şimdi derleyebilirim. Teşekkürler! – Richard

İlgili konular