C++ "类 myClass"后面的名称指定什么?

C++ What does a name after 'class myClass' specify?

本文关键字:什么 myClass C++      更新时间:2023-10-16

我知道在C++中,类继承了class childClass : public parentClass的形式,以及类似的变体。但是,我正在浏览SFML(C++游戏编程库)头文件,我发现了这个:

namespace sf
 {
   ...
   class SFML_API Drawable
   {
   public :
    ...

我对这在语法方面意味着什么感到困惑C++。类名不能包含空格,并且不能有冒号或任何其他符号。此语法的含义是什么?

按照通常的惯例,用这样的所有大写字母编写的标识符通常是预处理器宏常量

鉴于这一事实,如果您搜索其他标题,您可能会找到如下行:

#define SFML_API __declspec(dllexport)

在我自己安装的 SFML 2.1 中,我在 Config.hpp 中找到了这些行:

#define SFML_API_EXPORT __declspec(dllexport)
// ... later...
#define SFML_API_EXPORT __attribute__ ((__visibility__ ("default")))

__declspec 关键字告诉 Windows 上的编译器,后面的声明将被视为共享库中的导出符号。类似地,__visibility__ 属性告诉与 GCC 兼容的编译器,该符号将在库外部可见。这使得应用程序可以链接到动态/共享库并使用其代码。