Funções não-membro não-membro vs funções privadas
Herb Sutter disse que a maneira mais orientada a objetos para escrever métodos em C ++ é usando funções não-membro não-membro. Isso significa que eu deveria usar métodos privados e transformá-los em funções que não sejam de um não-membro? Qualquer variável de membro que esses métodos possam precisar pode ser passada como parâmetros.
Exemplo (antes):
<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>
Exemplo (depois):
<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>
Estou no caminho certo? Todos os métodos privados devem ser movidos para funções não pertencentes a não-membros? Quais deveriam ser as regras que diriam o contrário?