2011-06-05 8 views
0

J'ai besoin de conseils pour la structure hiérarchique suivante, que je veux représenter dans un programme C++.Désignation des structures hiérarchiques en C++

Il existe une classe abstraite uri et les classes url et urn qui en dérivent. Je voudrais avoir un répertoire contenant le code source du concept uri. Et un espace de noms qui devrait être appelé .. uri. :)

Donc, je viens à ma question. Lorsque l'espace de noms est déjà appelé "uri", comment nommer la classe abstraite "uri" alors? Quelle convention d'appellation est habituelle pour ce problème en C++? base, uri_base, basic_uri ou comment le nommez-vous?

Et ma deuxième question est. À quelle fréquence pouvez-vous imbriquer des espaces de noms avant que les utilisateurs ne s'en soucient? Par exemple, j'ai des parties uri comme authority, query et ainsi de suite .. Serait-il sage de créer un nouvel espace de noms (par exemple: parts) et mettre le code source de ces classes dans un nouveau sous-répertoire? Ou est-ce juste "dépassé"?

Merci et salutations

reeaal

Répondre

3

Les espaces de noms ne sont pas basés et ne doivent pas être basés sur les répertoires réels qui contiennent les fichiers. Leur but est de regrouper des classes/structures/constantes connexes et de réduire les ambiguïtés.

Il n'y a aucun problème à nommer une classe de la même manière que son espace de nommage (tel que uri :: uri). Les noms devraient être choisis avec le programmeur qui utilisera les classes en tête.

1

Lorsque l'espace de noms est déjà appelé "uri", comment pourrais-je nommer la classe abstraite "uri" alors?

Vous pouvez simplement le nommer "uri" si vous le souhaitez, vous pouvez avoir un identifiant avec le même nom que l'espace de noms qui l'entoure sans problème.

0

Vous utilisez abusivement les espaces de noms. Ils sont là essentiellement pour empêcher les conflits de noms entre les bibliothèques - vous devriez, en général, avoir un espace de noms par bibliothèque.

Questions connexes