Quote Originariamente inviata da shodan Visualizza il messaggio
E' necessaria una funzione static per questo
Pensavo bastasse fare Classe::setMembro3(....); .....

Fino ad ora una cosa simile l'ho usata con le enum dichiarate public in un'altra classe (AltraClasse::enum_xxx), per i metodi pensavo valesse la stessa cosa.

Non so se è solo un complicarsi la vita, ma allora potrei definire static il metodo public (a me serve poterlo richiamare senza istanziare la classe in certi casi), cambiare il prototipo in

static tipo3 calcMembro3(const double& parametro1, const double& parametro2);

e lasciare anche il metodo private

void setMembro3();

che sarà implementato come segue:

void setMembro3()
{
mMembro3=calcMembro3(mMembro1, mMembro2);
}

in questo modo, se è corretto, dovrei avere un unico punto da modificare in caso di necessità, che è calcMembro3.



Quote Originariamente inviata da shodan Visualizza il messaggio
Di fatto è poco più di una free function.
Con un po' di Google adesso vediamo di scoprire anche questa...

Quote Originariamente inviata da cisco87 Visualizza il messaggio
Da Clean Code, se piu' metodi di una classe hanno bisogno dello stesso valore di variabile, allora quella variabile deve diventare una proprieta' della classe. Se un metodo e' chiamato soltanto da altri metodi della classe allora e' private. I metodi statici vanno evitati.
Se ci fosse una sezione per principianti, quella sarebbe la mia: scusa, ma dall'alto della mia ignoranza non capisco cosa significa quanto scritto. In parole più semplici, ma soprattutto, con un esempio, magari mi risulterebbe più digeribile.

Grazie