PDA

View Full Version : [C++] Regole realizzazioni classi


pixie
26-08-2010, 09:38
Salve. Mi è venuto un dubbio mentre realizzavo l'header file contente la mia classe.
Ad esempio ha senso mettere una funzione di questo tipo nel campo public della classe ?
void riepilogo_dati_pers() {
cout << "Numero di telefono: " << num_tel << '\n';
cout << "Email: " << email << '\n';
cout << "Codice fiscale: " << cod_fiscale << '\n';
}

pixie
26-08-2010, 21:05
:help: :help: :help:

GioVesas
27-08-2010, 07:55
Non mi e' molto chiaro il problema.
Se vuoi stampare questa informazione in qualsiasi punto del codice che utilizza la classe la risposta e' si.

tomminno
27-08-2010, 08:22
Salve. Mi è venuto un dubbio mentre realizzavo l'header file contente la mia classe.
Ad esempio ha senso mettere una funzione di questo tipo nel campo public della classe ?
void riepilogo_dati_pers() {
cout << "Numero di telefono: " << num_tel << '\n';
cout << "Email: " << email << '\n';
cout << "Codice fiscale: " << cod_fiscale << '\n';
}

In linea generale non è propriamente corretto: la tua classe suppone che il progetto sia un progetto console, e se avesse un'interfaccia grafica?
Eventualmente potrebbe restituire una stringa contenente le informazioni che poi il chiamante utilizzerà come meglio crede: potrebbe stamparle sullo standard out oppure visualizzarle in un message box oppure ancora eseguirne il log su file o quant'altro.

pixie
27-08-2010, 08:47
In linea generale non è propriamente corretto: la tua classe suppone che il progetto sia un progetto console, e se avesse un'interfaccia grafica?
Eventualmente potrebbe restituire una stringa contenente le informazioni che poi il chiamante utilizzerà come meglio crede: potrebbe stamparle sullo standard out oppure visualizzarle in un message box oppure ancora eseguirne il log su file o quant'altro.

Cosa intendi per "Eventualmente potrebbe restituire una stringa contenente le informazioni" ?
C'è il dubbio mi è venuto per il fatto che nelle librerie del C o C++ non si trovano funzioni di questo tipo o almeno credo. Quindi mi chiedevo se era "corretto".

tomminno
27-08-2010, 09:24
Cosa intendi per "Eventualmente potrebbe restituire una stringa contenente le informazioni" ?
C'è il dubbio mi è venuto per il fatto che nelle librerie del C o C++ non si trovano funzioni di questo tipo o almeno credo. Quindi mi chiedevo se era "corretto".


std::string riepilogo_dati_pers() {
std::stringstream str;
str << "Numero di telefono: " << num_tel << '\n';
str << "Email: " << email << '\n';
str << "Codice fiscale: " << cod_fiscale << '\n';
return str.str();
}

pixie
27-08-2010, 09:42
std::string riepilogo_dati_pers() {
std::stringstream str;
str << "Numero di telefono: " << num_tel << '\n';
str << "Email: " << email << '\n';
str << "Codice fiscale: " << cod_fiscale << '\n';
return str.str();
}


Mmmm che cosa cambierebbe dal segmento di codice precedente? è la prima volta che vedo una cosa d questo tipo

ndakota
27-08-2010, 09:48
Il suo restituendo una stringa è più generale. La sua funzione potrà essere chiamata per stampare su standard output, su file, da piazzare in una finestra. Tutto qui.