2010-10-11 3 views
17

Il est bon de trier les méthodes dans les fichiers d'en-tête dans le même ordre que dans le fichier .cpp, mais souvent cet ordre devient grossier au cours du développement. Comment puis-je réorganiser les méthodes du fichier cpp dans l'ordre indiqué dans le fichier d'en-tête?Comment trier automatiquement les méthodes par en-tête?

+0

Cela ressemble à un travail pour un embellisseur de code. Sur quelle plateforme êtes-vous, Windows ou Unix? – wheaties

+3

Je pense que vous transpirez les trucs * vraiment * petits. –

+0

Je travaille sur Linux, mais je peux aussi utiliser Windows. Et bien sûr, c'est une très petite chose, mais c'est un plaisir d'avoir ce qui augmente la lisibilité du code. – Gerrit

Répondre

1

J'ai trouvé utile d'utiliser un outil de comparaison graphique pour afficher côte à côte l'en-tête et le fichier source afin de synchroniser la documentation et de vérifier que tout est dans le même ordre. (Mon employeur m'a acheté Araxis Merge, donc c'est ce que j'utilise, mais il existe une variété d'outils gratuits et commerciaux qui accomplissent la même chose sur une variété de plates-formes.)

Cela pourrait être plus facile avec une procédure C ou C++ fichier, contrairement à un fichier C++ orienté objet dans lequel les fonctions de membre de classe auraient un niveau d'indentation différent dans l'en-tête que dans le fichier source.

0
The headline says: sort methods in cpp file by header 
The body says: sort methods in header files in the same order as in the cpp file 

N'est-ce pas contradictoire? :-)

Alors qu'il est possible d'éditer l'en-tête ou les fichiers source soit par un outil ou à la main, dans la vraie vie, il est très difficile d'appliquer/maintenir cette commande.

Mon approche consiste à «visualiser» les noms de méthodes dans l'ordre alphabétique. Cela est réalisable en exécutant doxygen sur les fichiers. Dans le fichier de configuration de doxygen, les deux options pourraient être utiles

SORT_MEMBER_DOCS = YES 
SORT_BRIEF_DOCS = YES 
0

Vous pouvez utiliser un modeleur (comme Umbrello) pour modéliser vos classes suivantes et générer le code approprié.

Questions connexes