Nicht-Mitglieder-Funktionen, die keine Freunde sind, und private Funktionen

Herb Sutter hat gesagt, dass die objektorientierteste Methode zum Schreiben von Methoden in C ++ die Verwendung von Nicht-Mitglied-Nicht-Freund-Funktionen ist. Sollte das bedeuten, dass ich private Methoden verwenden und sie in Funktionen umwandeln sollte, die nicht Mitglieder sind und nicht Freunde sind? Alle Membervariablen, die diese Methoden möglicherweise benötigen, können als Parameter übergeben werden.

Beispiel (vorher):

<code>class Number {
 public:
  Number( int nNumber ) : m_nNumber( nNumber ) {}
  int CalculateDifference( int nNumber ) { return minus( nNumber ); }
 private:
  int minus( int nNumber ) { return m_nNumber - nNumber; }
  int m_nNumber;
};
</code>

Beispiel (nachher):

<code>int minus( int nLhsNumber, int nRhsNumber ) { return nLhsNumber - nRhsNumber; }
class Number {
 public:
  Number( int nNumber ) : m_nNumber( nNumber ) {}
  int CalculateDifference( int nNumber ) { return minus( m_nNumber, nNumber ); }
 private:
  int m_nNumber;
};
</code>

Bin ich auf dem richtigen Weg? Sollten alle privaten Methoden in Funktionen verschoben werden, die nicht Mitglieder sind und keine Freunde sind? Was sollten Regeln sein, die dir etwas anderes sagen würden?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage