PDA

Visualizza la versione completa : [C++] Uso di template e array


nonsoloC
14-05-2007, 13:36
Salve a tutti, ho bisogno di usare i template in una classe. In pratica devo inizializzare un vettore con dei dati. Ho questo codice:



#include <string>

#include <fstream>

#include <iostream>

#include "vheapsort.h"

#define Size 5



using namespace std;



int main(int argc, char* argv[]){


cout << "Programma iniziato!" << endl;


T Record[Size];


Vheapsort <char> * vh= new Vheapsort<char>(Record,Size);

Record=vh->initHeap(Record);

delete vh;

return 0;

}


template<class T> char * Vheapsort<T>::initHeap(T* V){



V[0]="a";

V[1]="f";

V[2]="e";

V[3]="z";

V[4]="g";



return V;



}



Sulle righe dell'assegnazione ricevo questo errore:

error: invalid conversion from ‘const char*’ to ‘char’

Siccome non sono molto pratico dei template mi spiegate dove sbaglio?
Grazie a chi mi darà una mano!

XWolverineX
14-05-2007, 13:58
Sostituisci i


V[0]="a";


Con



V[0]='a';

nonsoloC
14-05-2007, 14:03
grazie mille ora però ricevo questi errori:

main.cpp:14: error: ‘T’ was not declared in this scope
main.cpp:14: error: expected `;' before ‘Record’
main.cpp:16: error: ‘Record’ was not declared in this scope

devo mettere il template anche prima del main?

menphisx
14-05-2007, 15:46
int main(int argc, char* argv[]){


cout << "Programma iniziato!" << endl;


T Record[Size];


Vheapsort <char> * vh= new Vheapsort<char>(Record,Size);

Record=vh->initHeap(Record);

delete vh;

return 0;

}
Difatti T non è stato dichiarato nella funzione main.
Puoi postare anche vheapsort.h ?

:ciauz:

Loading