/ Fichiers d'inclusion / Qt - c ++, qt, include

Fichiers Qt include - c ++, qt, include

J’ai eu une discussion avec quelqu'un qui me disait que ce n’était pas bien de faire ce que Qt fait avec les fichiers d’inclusion car j’ai adopté la même stratégie dans mon code.

"Utilisons QApplication comme exemple. Lorsque vous souhaitez inclure QApplication, vous devez procéder comme suit:

#include <QApplication>

QApplication est un fichier sans extension qui contient:

#include "qapplication.h"

Le seul inconvénient est que cela crée plus de fichiers dans le projet. À part ça, je pense que cela n'a que des avantages.

Ma question est donc la suivante: pourquoi s’agit-il d’une bonne ou d’une mauvaise idée?

Réponses:

2 pour la réponse № 1

Je pense que c'est surtout une question de goût personnel. Différents projets utilisent un style différent. Qt a ramassé ce style.

1) Fondamentalement, il correspond partiellement aubibliothèque standard inclut sans l'extension d'en-tête, bien que CamelCase. Il est différent à cet égard cependant que la bibliothèque standard n'autorise pas ces jours-ci à utiliser la version avec suffixe.

2) Cela pourrait également aider avec la classe inclut dans un en-tête avec une classe principale différente. Voir cet exemple:

#include <QFoo>

où QFoo est défini dans qbar.h puisque la classe principale est QBar, mais qu’une autre classe est placée dans le même en-tête.

Le seul inconvénient est que cela crée plus de fichiers dans le projet.

Il ne crée pas plus de fichiers que nécessaire carceux-ci pourraient être générés à la volée comme dans le projet Qt. Dans ce cas, cela n'encombrera pas votre arbre source et sera placé dans le répertoire de construction, ou du moins dans un endroit séparé où il ne vous gênera pas. Ceci est fait actuellement par syncqt dans le projet Qt.


2 pour la réponse № 2

Utiliser des fichiers d’en-tête sans extension n’est pas unbonne idée car cela rend difficile la recherche dans les fichiers d'en-tête (* .h ou * .hpp) et rend plus difficile l'identification du contenu d'un fichier (par exemple, si votre éditeur s'appuie sur l'extension pour choisir le mode de coloration syntaxique approprié ). En outre, il y a plus de fichiers dans le projet, comme vous l'avez mentionné.

De plus, Qt utilise cette convention précisément parce que les programmeurs intelligents ne le font pas. Cela signifie que vos en-têtes ne seront pas en conflit avec les nouveaux en-têtes Qt.

Je pense donc que l'utilisation de vos fichiers d'en-tête avec des extensions sépare vos fichiers d'en-tête personnalisés de ceux de Qt d'une manière ou d'une autre. Cela rend plus clair et plus clair ce que l’en-tête est pour Qt et lequel est le vôtre.