Quote Originariamente inviata da vicio_93 Visualizza il messaggio
Va bene. Per ultimo quando per esempio invoco il costruttore di una classe base per una derivata se utilizzo gli stesso nomi posso avere un conflitto di nomi?

es.
codice:
Persona::Persona(string a, string b, string c){...}

Studente::Studente (string a, string b, string c, string d) : Persona (a,b,c){...}
Perché dovrebbe dare problemi? È concettualmente equivalente a chiamare una normale funzione, le espressioni che passi come argomenti non c'entrano nulla con il nome dei parametri usati dentro la funzione.

Quote Originariamente inviata da vicio_93 Visualizza il messaggio
Poi quando compilo mi da un errore nella get dicendo che devo ritornare un riferimento a costante no un riferimento semplice..
mi spiego..

quando scrivo
codice:
const string& Persona::getnome()const{
       return nome;
}
il programma compila, mentre quando levo il const iniziale no. Perchè? string nome non è costante.
Possibile che quando metto il const iniziale significa che l'oggetto ritornato non è stato modificato e non come penso io che l'oggetto ritornato è costante?

Scusate troppe domande lo so ahahhah
Se marchi un metodo come const, allora il this che ricevi è const, per cui tutti i membri "appaiono" come const. Per questo motivo non puoi restituire un riferimento non costante a nome, dato che this->nome in un metodo const è di tipo const std::string&.

Per inciso, quando posti codice racchiudilo tra tag [CODE] ... [/CODE], altrimenti perde l'indentazione e non si attiva l'evidenziazione della sintassi (ora ho corretto io).