c++中类定义前面的宏是什么意思?

问题描述 投票:0回答:1

在C++中,在 "class "和 "class_name "之间出现了一个词,那么在C++中允许以下结构的语法是什么?

namespace octave
{
  // Command line arguments.  See also options-usage.h.

  class OCTINTERP_API cmdline_options
  {
  public:
...

注意,我不是在问宏的含义。我不是在问它的作用。我不是在问它是否为空。我问的是类定义的语法。

好几个资料都解释了语法,但是没有中间的词,比如说。

class class_name {
  access_specifier_1:
    member1;
  access_specifier_2:
    member2;
  ...
} object_names;

请注意,下面的问题是关于语法的,而答案是关于别的东西的。c++中类定义前面的宏C++类定义语法

c++ class syntax
1个回答
5
投票

这不是标准的C++(除非宏的值是whitespace,或者你使用的是 属性),但在针对某些平台时,一些编译器需要它。

一个常见的情况是在为Windows构建动态链接库(dll)时。OCTINTERP_API 很可能被设置为 __declspec(dllexport) 构建dll时,以及 __declspec(dllimport) 当使用dll时。

(参见 https:/en.cppreference.comwcpplanguageclasses。)

© www.soinside.com 2019 - 2024. All rights reserved.