Perchè il dev mi da questo errore, sarà banalissimo, ma non lo capisco:
codice:char * Titolo; void setTitolo (const char * valore) {Titolo=valore;}
Perchè il dev mi da questo errore, sarà banalissimo, ma non lo capisco:
codice:char * Titolo; void setTitolo (const char * valore) {Titolo=valore;}
perchè Titolo è dichiarata come variabile puntatore a char mentre tu stai passando un valore che è un puntatore costante a char.
Come vedi i due tipo sono diversi e come tale non puoi assegnarli.
Oltre a quello che ti ha già detto Stoicenko, sei sicuro che vuoi assegnare il puntatore o vuoi assegnare il contenuto della stringa?
No MP tecnici (non rispondo nemmeno!), usa il forum.
non voglio fare il guastafeste però in un altro prog ho fatto:
ed è partitocodice:class Posto{ private: int ID; public: void setID(const int Cod) {ID=Cod;}
voglio assegnare il contenuto dela stringaOriginariamente inviato da oregon
Oltre a quello che ti ha già detto Stoicenko, sei sicuro che vuoi assegnare il puntatore o vuoi assegnare il contenuto della stringa?
E quindi assegnare il puntatore non è corretto. Si usa la funzione
strcpy
(o la sua versione sicura).
E *occhio* perché devi prima allocare lo spazio necessario per il puntatore di destinazione.
P.S. Ma se usi il C++ perché mai non usi le string ?
No MP tecnici (non rispondo nemmeno!), usa il forum.
ho usato la strcpy(Titolo,valore);Originariamente inviato da oregon
E quindi assegnare il puntatore non è corretto. Si usa la funzione
strcpy
(o la sua versione sicura).
E *occhio* perché devi prima allocare lo spazio necessario per il puntatore di destinazione.
P.S. Ma se usi il C++ perché mai non usi le string ?
void setTitolo (const char* valore) strcpy(Titolo,valore);
è andata, grazie mille, mi ero dimenticato che l'assegnazione tra stringhe non è possibile
Sì ... ma hai allocato lo spazio per il puntatore Titolo?
No MP tecnici (non rispondo nemmeno!), usa il forum.
cioè mettere le parentesi quadre?Originariamente inviato da oregon
Sì ... ma hai allocato lo spazio per il puntatore Titolo?
ti posto il codice:
codice:class giornale { private: float costo; char * Titolo; bool periodico; public: giornale(float C=0, char * T='a', bool P=false); giornale(const giornale &); float getCosto() const {return costo;} char* getTitolo() const {return Titolo;} //?? bool getPeriodico() const {return periodico;} void setCosto (const float c) {costo=c;} void setTitolo (const char* valore) {strcpy(Titolo,valore);} void setPeriodico (const bool valore) {periodico=valore;} ~giornale() {delete [] Titolo;} }
La delete libera lo spazio ma la new per allocarlo quando la fai?
No MP tecnici (non rispondo nemmeno!), usa il forum.