12 votes

Est-il possible de définir plusieurs classes dans un seul fichier .cpp ?

Je travaille sur un projet pour l'école et l'instructeur insiste pour que tout le code soit placé dans un seul fichier .cpp (pour faciliter la notation de sa part). Je voudrais définir plusieurs classes dans ce fichier. Est-ce que je vais rencontrer des problèmes en faisant cela ?

3voto

gorsky Points 604

Juste des problèmes d'évolutivité et de maintenabilité ;) Il n'y a pas de règles strictes à ce sujet.

3voto

RC. Points 15804

Oui, vous pouvez. Cela doit être pris en charge car, sinon, vous ne pourriez pas créer de classes imbriquées.

class outside
{
public:
      class nested
      {
      public:
            static int x;
            static int y;
            int f();
            int g();
      };
};

2voto

arhuaco Points 615

Non, vous ne rencontrerez pas de problème. En C++, vous pouvez définir plusieurs classes dans un seul fichier.

2voto

Liz Albin Points 1371

Vous n'aurez aucun mal à définir plusieurs classes dans un seul fichier.

Ce n'est pas une bonne pratique pour les systèmes de production, mais ce n'est pas un problème pour les devoirs.

2voto

progician Points 148

La question provient de la représentation des sources de style java/C#. En C++, la disposition du code source est très différente. Une unité de source (fichier "cpp") peut contenir autant de déclarations que vous le souhaitez. Cependant, ce n'est pas nécessairement une bonne stratégie car à un moment donné, vous devez dire aux autres classes comment traiter vos classes. En C++, une classe peut avoir une section de définition et de déclaration séparée et vous pouvez les placer dans des fichiers différents. La définition de la classe est partagée entre d'autres fichiers sources grâce aux instructions #include, ce qui vous permet d'utiliser ces classes dans n'importe quel scénario où la définition est nécessaire. Si vous avez affaire à des classes qui ne sont utilisées que dans un seul fichier source, vous pouvez les cacher directement dans les fichiers source, mais si vous souhaitez les connecter à d'autres classes, vous devez placer la définition dans un fichier d'en-tête.

Cela pourrait vous aider à améliorer la vitesse de compilation - surtout si vous utilisez des en-têtes pré-compilés, mais attention, car les pch-s ne font pas partie du standard C++ et chaque compilateur les traite de manière différente ! - et la flexibilité de votre code. Votre professeur devrait être au courant de ces faits...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X