Qu'est-ce que cela veut dire quand une classe est déclarée comme ceci:CP_EXPORT dans la déclaration de classe en C++
class CP_EXPORT CP_Window : public CP_Window_Imp
Qu'est-ce que la partie CP_EXPORT
signifie/implique?
Qu'est-ce que cela veut dire quand une classe est déclarée comme ceci:CP_EXPORT dans la déclaration de classe en C++
class CP_EXPORT CP_Window : public CP_Window_Imp
Qu'est-ce que la partie CP_EXPORT
signifie/implique?
CP_EXPORT
est très probablement une macro pour exporter conditionnellement ou importer la classe à partir d'une bibliothèque dynamique.
Par exemple, lors de l'utilisation de Visual C++, une macro est utilisée pour sélectionner conditionnellement entre dllexport
and dllimport
. Cela permet d'utiliser le même en-tête à la fois pour le projet qui construit la DLL elle-même et pour tous les projets qui lient ou chargent la DLL.
Utilisez-vous C-Pluff?
définit:
#define CP_EXPORT
Declares a symbol to be exported for inter-module usage.
#define CP_IMPORT
Declares a symbol to be imported from another module.
#define CP_HIDDEN
Declares a symbol hidden from other modules.
Je pensais que C-Pluff était un framework C, je ne sais pas comment la classe pourrait s'y intégrer (à moins qu'il y ait une couche C++ dessus) ... –
CP_EXPORT
est une macro qui se développe à une construction spéciale compilateur spécifique (probablement __declspec
dans MSVC ou __attribute__
dans gcc) qui fait quelque chose. Pour savoir exactement quoi, vous aurez besoin de chercher la définition de la macro CP_EXPORT
@James - Donc aussi, public CP_Window_Imp dans ce cas signifie que CP_Window est basé sur public CP_Window_Imp? – MLS
@ML: Cela signifie que 'CP_Window' dérive publiquement d'une classe de base' CP_Window_Imp'. Ce n'est pas différent de tout autre héritage C++. –