Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    27

    [C++] Errore: invalid conversion frOm 'const char' to 'char'

    Perchè il dev mi da questo errore, sarà banalissimo, ma non lo capisco:

    codice:
    char * Titolo;
    
    void setTitolo (const char * valore) {Titolo=valore;}

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    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.

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    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.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    27

    scusa

    non voglio fare il guastafeste però in un altro prog ho fatto:
    codice:
    class Posto{
    
    private:
    int ID;
    
    public:
     void setID(const int Cod) {ID=Cod;}
    ed è partito

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    27
    Originariamente 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?
    voglio assegnare il contenuto dela stringa

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    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.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    27
    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 ?
    ho usato la strcpy(Titolo,valore);

    void setTitolo (const char* valore) strcpy(Titolo,valore);

    è andata, grazie mille, mi ero dimenticato che l'assegnazione tra stringhe non è possibile

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Sì ... ma hai allocato lo spazio per il puntatore Titolo?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    27
    Originariamente inviato da oregon
    Sì ... ma hai allocato lo spazio per il puntatore Titolo?
    cioè mettere le parentesi quadre?

    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;}
           }

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    La delete libera lo spazio ma la new per allocarlo quando la fai?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.