PDA

Visualizza la versione completa : [C++] Overloading degli operatori


Habdul
23-10-2004, 12:20
Raga devo convertire un " const char* " in una carta!

Praticamente sto creando un mazzo di carte di 4 colori diversi

const char* GIALLO = "Giallo" ...

Voglio creare il metodo "carta.set_color(GIALLO)"



char* Carta::ser_colore(const char* color)
{
return colore_ = color;
}



l'assegnazione nn va a buon fine, ovvio no!?!

Come devo redifinire l'operatore?

Se voglio fare il casting del "const char*" in char* posso usare "sprintf", cioè



char* Carta::operator=(const char *sorgente)
{
char* temp;

sprintf(temp, "%s", sorgente);

return temp;
}




Che altra soluzione mi consigliate? :confused:

anx721
24-10-2004, 14:39
Io nn ho mica capito che vuoi fare...

Qualè lo scopo del metodo? Perche ritorni un char*? Poi la funzione con printf è sbagliata perke temp nn è allocato. Spiega meglio qual è il tuo scopo e qual è l'errore che ricevi.

:ciauz:

Habdul
24-10-2004, 20:58
Semplicemente voglio copiare il valore di una const char* in un char* semplice!!!

anx721
24-10-2004, 22:32
calcola la lunghezza len della stringa con strlen
alloca un array di len + 1 caratteri
copia la stringa nell'array con strcpy e ritorna l'array

Loading