【问题标题】:Can there be anything between keyword 'class' and class name in c++?c++中的关键字'class'和类名之间可以有任何东西吗?
【发布时间】:2015-08-03 05:15:50
【问题描述】:

我在 c++ 中遇到了一个代码,其中类的定义如下:

class MACRO class_name
{
     public :

     private :

}

【问题讨论】:

标签: c++ class


【解决方案1】:

在标准 C++11 及更高版本中,class 和类名之间可以有属性。宏也有可能(甚至更有可能)扩展为用于编译代码的特定编译器支持的非标准属性语法。

【讨论】:

    【解决方案2】:

    如果您在 Windows 代码中看到它,这可能是一个宏,用于确定您是要导出还是导入给定的类。

    如果您正在处理 dll-s,这很常见。

    所以,这个宏大概是这样的:

    #ifdef  PROJECTNAME_EXPORTS
    
    #define MACROBEFORECLASSNAME __declspec(dllexport)
    #else
    #define MACROBEFORECLASSNAME __declspec(dllimport)
    #endif
    

    如果您编译 dll,则应定义 PROJECTNAME_EXPORTS 预处理器定义,因此编译器将导出给定的类。 如果您编译的项目仅使用给定的 dll,则不会定义 ...EXPORTS,因此编译器将导入给定的类。

    【讨论】:

    猜你喜欢
    • 2010-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多