2010-08-26 5 views
-2

J'aiC++ question d'interface

Forfait A (A Namespace), qui a le fichier d'en-tête dire internalItems.hpp, contient une classe avec énumération des éléments à créer et méthodes pour obtenir et type d'élément défini. Maintenant, cette classe doit être rendue disponible dans le paquet commun (Paquet commun avec Namespace COMMON) de sorte que l'autre paquet (disons Package EndUser avec Namespace EUSER) puisse utiliser le type d'énumération.

Quelle est la meilleure façon de le faire? Merci pour vos précieuses réponses.

+6

Oui. J'ai toujours pensé que ce code expliqué en anglais est tellement plus clair que le code –

+2

C++ n'est pas Java et n'a pas de concept de "Paquets" (sauf si vous avez fait quelque chose de terrible comme '#define package namespace'), donc je n'ai pas idée de ce que vous demandez. – Shirik

+0

Je suppose que les EDI Java-centric (Eclipse, NetBeans etc.) appellent encore des paquets de projets C++ ou quelque chose? – Rup

Répondre

1

Je pense que vous demandez comment exposer les classes et énumérations dans internalitems.hpp à votre projet EUSER à partir de votre bibliothèque commune.

Vous aurez besoin de #include "internalitems.hpp" dans n'importe quel fichier qui doit utiliser les énumérations ou les classes qui y sont définies, quel que soit le projet dans lequel il se trouve. Dans ce cas, si les internalitems sont destinés à être internes, not- Le fichier d'en-tête exposé-to-library-consumers doit alors être promu pour faire partie des en-têtes de l'interface de bibliothèque commune ou au moins filtrer les parties que le code externe doit utiliser dans un fichier d'en-tête public.