bu şey benzeri yığın veri yapısını yazdı fonk itmek derleme değilyığın şablon
template<class T>
Stos<T>::Stos(const T& n = 0): count(1) {
member = new Element(n);
}
template<class T>
T Stos<T>::get() {
return member->n;
}
template<class T>
Stos<T>::Element* Stos<T>::push(const T& n = 0) {
Element* point = member;
member = new Element;
member->prev = point;
if(n != 0) member->n = n;
++count;
return member;
}
template<class T>
T Stos<T>::pop() {
Element* point = member;
T n = point->n;
member = point->prev;
--count;
delete point;
return n;
}
template<class T>
void Stos<T>::mod(const T& n) {
member->n = n;
}
template<class T>
Stos<T>::~Stos() {
while(member) pop();
}
Ve bunu derlemeye çalıştığınızda g ++ ile, Stos::Element* Stos::push()
: expected constructor, destructor, or type conversion before ‘*’ token
tanımının ilk satırı hakkında bu hatayı alıyorum. İlk olarak şablonlarla bir şeyler yazmayı denemem. Bu yığın kodu, şablonlar olmadan çalışırdı, ben düzenlediğimde, hatayı aldım, her şey "T" yerine her yerde "int" ile daha önce iyi çalıştı.
Ve neden derleme olmadığını anlayamıyorum. İşaretçi sınıf :: üye kullanamaz mıyım?
Teşekkür ederim, işe yarıyor. – silmeth
StackOverflow, soru "C++" ve "şablon" ve "derleme" konularına işaretlendiğinde otomatik olarak "typename" yazmanız gerekir. –
Ve hatta "VS dan taşınan", :-) – mmmmmmmm