当我看到这段代码时,我正在通过wxWidgets的源码
class WXDLLIMPEXP_FWD_CORE wxKeyEvent;
在这之后他们定义了一个这样的类
class WXDLLIMPEXP_FWD_CORE wxKeyEvent : public wxEvent{
//some code
};
如您所见,有一个空格,但在命名类时不能有它,此外,我编写了这段成功编译的小代码`
#include <bits/stdc++.h>
using namespace std;
class a
{
public:
int x;
};
class a b
{
// it fails if i add anything there
};
int main()
{
return 0;
}
当我在 a b 类中添加一些内容时,编译失败。你能告诉我发生了什么事吗?
谢谢!
最佳答案
WXDLLIMPEXP_FWD_CORE
是一个宏,应该添加一个(特定于编译器的)类属性并扩展为 __declspec(dllexport)
或 __declspec(dllimport)
取决于是用于导出还是导入类。
你的例子 class a b {/* ... */};
只是无效的语法,
类名不能包含空格。
关于c++ - 命名类时的空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42706156/