Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto è il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore più ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte più ampia, Dynamic Island più piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
A Londra, per il trentennale dei Toughbook, Panasonic ha presentato il tablet G3 e il 2-in-1 34. Con Jon Tucker, a capo dell'ingegneria europea, abbiamo parlato di ciò che non si vede: batterie, antenne, porte seriali e accorgimenti nati sul campo
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


Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
Strata fa girare un modello da 125 milia...
La bolletta diventa 'gamer': in Germania...
Trump istituisce una task force sull'int...
Una fuga di dati riporta le immagini del...
Il quantum computing incontra l'industri...
Nintendo Switch 2 celebra i 40 anni di T...
Nacon presenta Revolution 5 Unlimited: i...
L’IA entra nelle imprese, ma la governan...
OpenAI citata in giudizio per l'attacco ...
Il segreto di Windows XP svelato: il tru...
L'intelligenza artificiale Ataraxos batt...
LG OLED B6E 55'' a 899€ e OLED evo G5 48...
Trump spinge l'Europa, il G7 apre i rubi...
La Via Lattea potrebbe essere nata da mi...
Una GTX 1080 Ti su Windows XP nel 2026: ...
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: 12:20.


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