C++ Déclaration de variables de classe dans l'en-tête ou le .rpc?

Jusqu'à présent, j'ai été en utilisant les classes de la manière suivante:

GameEngine.h déclare la classe comme suit

class GameEngine {
public:
    //Declaration of constructor and public methods

private:
    InputManager inputManager;
    int a, b, c;

    //Declaration of private methods
};

Mon GameEngine.cpp fichiers puis il suffit de mettre en œuvre les méthodes

#include "____.h"    
GameEngine::GameEngine() {

}

void GameEngine::run() {
    //stuff
}

Cependant, j'ai lu récemment que les déclarations de variables ne sont pas censés être dans le fichier d'en-tête. Dans l'exemple ci-dessus, ce serait un inputManager et a, b, c.

Maintenant, j'ai été la recherche de l'endroit où placer les déclarations de variables, le plus proche de la réponse que j'ai trouvé est celle-ci: Déclaration de Variable dans un fichier d'en-tête

Cependant, je ne sais pas si l'utilisation de extern a du sens ici; je viens de déclarer les variables privées qui ne sera utilisé que dans une instance de la classe elle-même. Sont mes déclarations de variables dans les fichiers d'en-tête fine? Ou dois-je les mettre ailleurs? Si je dois les mettre dans le fichier cpp, ils vont directement en vertu de la #include?

"les déclarations de variables ne sont pas censés être dans le fichier d'en-tête".... quoi? Les variables de membre être déclarée avec la déclaration de classe.
Si la variable est destinée à être utilisée à l'échelle mondiale, alors extern va dans l'en-tête, et vous définissez la variable une fois dans certains .fichier cpp. Si ils sont des variables globales utilisées en interne, puis ils vont dans le .rpc. Si ils sont logiquement partie de la classe, puis de les rendre variables membres.
Les déclarations de variables et de membre les déclarations de variables sont différentes. Et d'ailleurs, c'est le définition de la non-membre variables qui vont vous donner des problèmes, pas les déclarations.
Avez-vous l'intention d'utiliser le Pimpl idiome? Je ne comprends pas ce que vous avez lu.
Essayé, mais impossible de trouver l'original de la déclaration plus. Il était quelque part, en fait, mais depuis que j'ai essayé de chercher une réponse, mon histoire est trop plein pour le localiser à nouveau. Pour moi ça sonnait comme une déclaration générale de déclarer des variables dans .h dossiers de mauvais style de programmation; Toutefois, compte tenu de vos réactions, j'ai probablement mal compris.

OriginalL'auteur Kefir | 2015-02-14