|
Titlul: Template Scris de: Ieremici Milenco din Ianuarie 09, 2007, 21:41:35 Buna!
Nu am gasit search asa ca daca mai exista un subiect pe aceasta tema imi cer scuze. Vreau sa imi fac un template pentru o lista. In template am declarat un pointer static dar nu stiu de ce cand il declar imi da eroare. Am sa dau si un exemplu ca poate nu m-am exprimat cum trebuie: template <typename T> class Lista { static Lista *head; Lista *next; public: ... }; class XXX { ... }; Lista<XXX> *Lista<XXX> :: head = NULL; Eroarea care o primesc este: "too few template-parameter-lists " P.S. Exista cumva vrea diferenta intre declaratia <typename T> si <class T> sau e mai bine una sa o folosesti candva si pe cealalta altcandva? Mersi anticipat de ajutor Titlul: Raspuns: Template Scris de: Bondane Cosmin din Ianuarie 09, 2007, 22:09:57 nu exista nici o diferenta intre <typename T> si <class T>, doar ca <typename T> ii 'notatia' mai noua. cam atata te pot ajuta. nu stiu dc nu iti merge codu, sorry.
Titlul: Raspuns: Template Scris de: Stefan-Alexandru Filip din Ianuarie 10, 2007, 16:58:55 Dubios.
Am cautat putin pe net dar nu am inteles exact cum functioneaza variabilele statice ale unei clase template in C++. Problema este momentul in care este creata variabila statica. Pe langa asta si declararea este neclara, desi are sens din punct de vedere sintactic al C++. In orice caz, tu trebuie sa scrii: Cod: template <typename T> Lista <T> *Lista <T> :: head = NULL; Ceea ce nu inteleg este cum o sa te ajute variabila statica. Variabila statica este aceiasi pentru toate clasele de acelasi fel, iar in clasa ta cam pierzi capul listei. Cod: #include <cstdio> |