Sto cercando di imparare modelli in C++ e ho il seguente codice:modello e definizione della classe derivata: errore: 'myClass' non è una classe, spazio dei nomi, o enumerazione
#include <stack>
template<typename T>
class myClass : public std::stack<T>{
public:
myClass(void);
myClass(myClass const & src);
virtual ~myClass(void);
myClass & operator=(myClass const & rhs);
};
template<typename T>
myClass::myClass(void) : std::stack<T>(){
}
ma posso' t capire perché ricevo il seguente quando provo a compilare:
test.cpp:17:1: error: 'myClass' is not a class, namespace, or enumeration
myClass::myClass(void) : std::stack<T>(){
^
test.cpp:8:9: note: 'myClass' declared here
class myClass : public std::stack<T>{
^
1 error generated.
sembra la definizione della funzione causa l'errore, ma io non so perché ottengo questo errore, sembra OK per me (anche se immagino che non sia proprio OK), forse solo un errore di sintassi? ..
Compilare con clang ++ -Wall -Werror -Wextra -c.
Cosa potrebbe causare questo errore?
Nota a margine: non è necessario specificare 'void' se una funzione non ha parametri, basta usare' myClass(); '. – user657267
@ user657267 È vero, in effetti, ma devo usarlo nella mia scuola per programmare la ragione di stile (chiesto dalla mia scuola, ho preso l'abitudine). – vmonteco