Une fonction d'assistance doit-elle aller dans l'en-tête ou dans le fichier d'implémentation?

Lors de l'écriture d'une méthode d'assistance pour une classe en C++, doit-il être déclaré comme une méthode privée dans la classe de définition dans l'en-tête (.h) le fichier? Par exemple:

/*Foo.h*/
class Foo {

     public:
         int bar();

     private:
         int helper();
};
...
/*Foo.cpp*/
...
int foo::bar() {
    int something = this->helper();
}

int foo::helper() {
    ...
}

Ou sinon, est-il préférable de ne pas le déclarer comme un membre privé de la classe, et, au lieu de simplement faire un libre-debout fonction dans la mise en œuvre?

/*Foo.h*/
class Foo {
    public:
        int bar();
};
...
/*Foo.cpp*/
...
int Foo::bar() {
    int something = helper();
    ...
}

int helper() {
    ...   
}

source d'informationauteur Ataraxia