Ciao a tutti!
A scopo puramente sperimentale e formativo, stavo sperimentando per vedere se fossi in grado di scrivermi una coda linkata. Si, una coda. Tanto per provare :P
Ho usato due classi template, una per i "nodi" della coda e una per la coda in sè. Scrivo i metodi push e pop, sembra tutto a posto. Allora nel mio main faccio un piccolo test:
Il compilatore si rifiuta: arrivato al ciclo for mi da errore. Per la richiesta di "Push" all'interno della variabile "queue", la quale "is of non-class type LinkedQueue<int>()".codice:int main() { cout << "Creating the queue...\n"; LinkedQueue<int> queue(); cout << "Pushing 10 elements...\n"; for (int i = 0; i < 10; i++) { linkedNode<int> node(new int(i)); queue.Push(&node); } return 0; }
Ora, io stavo già per scrivervi e chiedere aiuto. Poi fortunatamente ho avuto l'idea (non so come!) di togliere quelle due parentesi nella dichiarazione. Era tutto lì il problema.
Ora, il problema è risolto e quindi capirò se i moderatori lo chiuderanno. Ma il dubbio rimane... se dichiaro queue così:
qual'è il suo tipo? Ho capito che è LinkedQueue<int>(), ma che cosa rappresenta? Cioè, se è un tipo distinto dalla sua controparte senza parentesi, perchè il compilatore non mi ha impedito di dichiararla?codice:LinkedQueue<int> queue();