Ho pensato di fare le due implementazioni in modo da avere a disposizione un metodo pubblico da poter usare anche quando l'istanza della classe non dovesse essere ncessariamente creata, per qualsiasi motivo,
E' necessaria una funzione static per questo, che comunque non può accedere a dati membro non static a prescindere dall'esistenza di una istanza di classe. Di fatto è poco più di una free function.

mentre il metodo privato da usare ad esempio nel costruttore della classe in cui vengono passati i parametri 1 e 2, assegnati ai rispettivi dati membro, e quindi richiamato il metodo setMembro3().
Ti sei risposto da solo
quindi mi tengo un solo metodo, quello pubblico, e uso sempre e solo quello
come linea generale, anche se un metodo viene implementato come private...
Se operi esclusivamente su dati membro i due sistemi sono sostanzialmente equivalenti.