Torna indietro   Hardware Upgrade Forum > Software > Programmazione

L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
La parola d'ordine al Nextcloud Summit 2026, che si è tenuto a Monaco, è stata "sovranità". Non come è spesso usato questo termine in politica ma, al contrario, come capacità positiva di decidere il proprio destino tecnologico, con modalità collaborative e aperte. L'Europa dice già molto nel mondo open source, che viene visto come mezzo per ottenere la tanto agognata autonomia digitale
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete implementa due bracci estensibili, per spazzola e moccio, che si spingono ben oltre quanto visto sino ad oggi permettendo una pulizia di casa ancor più capillare e precisa
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
La tecnologia SQD-Mini LED di TCL arriva sul taglio da 65 pollici con la serie C8L: 2040 zone, pannello WHVA 2.0 e un picco che alle rilevazioni delle sonde tocca i 4400 nit nel profilo Filmmaker e un HDR quasi perfetto
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-01-2008, 11:14   #1
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
[c++] template. dove sbaglio?

dovevo fare una classe stack e funzionava, successivamente dovevo renderla template, non ho fatto altro che aggiungere la "sintassi" per i template ma mi da 4 errori del tipo "simbolo esterno qualcosa non risolto".. dove sbaglio?

stack.h

Codice:
#pragma once
#define DIM 25

template <typename T> class stack
{
public:
	stack();
	~stack();
	void push(T data);
	T pop();
private:
	T pila[DIM];
	int stackPointer;
};
stack.cpp

Codice:
#include "stack.h"

template <typename T>
stack<T>::stack()
{
	stackPointer = 0;
}

template <typename T>
stack<T>::~stack()
{

}

template <typename T>
void stack<T>::push(T data)
{
	if(stackPointer > DIM - 1)
		throw "stack pieno.";

	else
		pila[stackPointer++] = data;
}

template <typename T>
T stack<T>::pop()
{
	if(stackPointer == 0)
		throw "stack vuoto.";

	else
		return pila[--stackPointer];
}
main.cpp

Codice:
#include "stack.h"
#include <iostream>
using namespace std;

int main()
{
	stack<char> s;

	s.push('c');
	s.push('i');
	s.push('a');
	s.push('o');

	cout << s.pop() << endl;
	cout << s.pop() << endl;
	cout << s.pop() << endl;
	cout << s.pop() << endl;

	cin.get();
	return 0;
}
inoltre visto che sento dire da molti che tanti programmano procedurale anche se usano gli oggetti vorrei sapere se sono tra questi
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 17-01-2008, 11:29   #2
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980
qui funziona perfettamente... mingw 3.4.5...

PS: forse ti conviene cambiare nome alla classe
PS2: forse è il caso di postare gli errori
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 17-01-2008, 11:37   #3
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Devi implementare i metodi della classe template nel file hpp perche' il compilatore ha bisogno di tutta la definizione della classe al momento dell'instanziazione del template.

Non puoi usare i cpp. O meglio, nello standard non puoi, alcuni compilatori provano a fare i furbini.

Meglio ancora, usi la classe std::stack di STL.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 17-01-2008, 11:48   #4
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Quote:
Originariamente inviato da fek Guarda i messaggi
Devi implementare i metodi della classe template nel file hpp perche' il compilatore ha bisogno di tutta la definizione della classe al momento dell'instanziazione del template.

Non puoi usare i cpp. O meglio, nello standard non puoi, alcuni compilatori provano a fare i furbini.

Meglio ancora, usi la classe std::stack di STL.
non posso è per scuola, vuole che la implementiamo noi.. più avanti useremo la STL.. comunque ho messo tutta la classe in un .hpp e ora funziona.. grazie mille a entrambi
ndakota è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026 L'Europa conta nella tecnologia e può ess...
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine NL-LC1 è il primo dissipatore a liquido A...
Engwe O20 Boost: abbiamo provato in ante...
UWANT V800: addio al rullo rotante, l’as...
Keenetic Stellar 6 porta il WiFi 6 negli...
Instagram spinge sul formato orizzontale...
DMA, l'UE verso la designazione di AWS e...
Dalla fisica quantistica alla fibra: il ...
TikTok, il 59% dei video è AI Slop, 'sch...
Batterie stampate in 3D: la forma libera...
Honor X80 Pro Max ufficiale: vi bastano ...
HONOR Watch 6: batteria infinita, modali...
Windows 11, addio alle ricerche sul web:...
La vera sfida dell’IA non è adott...
Signal contro l'AI agentica: dare ai cha...
Amazon: l'human-in-the-loop non basta a ...
HONOR 600 Lite: design in metallo e batt...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 20:18.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v