我一直在浏览代码,并在头文件中看到了这样的结构:
...
class ClassName* MethodName(int foo) const;
...
ClassName 是在其他头文件中定义的类。编辑:使问题更清楚。我对 class 关键字特别感兴趣。
我一直在浏览代码,并在头文件中看到了这样的结构:
...
class ClassName* MethodName(int foo) const;
...
ClassName 是在其他头文件中定义的类。编辑:使问题更清楚。我对 class 关键字特别感兴趣。
关键字class
是可选的*。
所以(等效的)代码行
ClassName* MethodName(int foo) const;
定义了一个函数
int
作为参数ClassName
实例的指针this
指针在函数内是 const )*这太罕见了,我什至不知道这甚至可以写。struct StructName
在 C 中,如果您定义了某种结构类型的变量(或函数参数/返回类型),则通常会编写。由于 C 结构类似于类的概念(请注意,在 C++ 中,结构是类),出于兼容性原因,它们似乎允许两者struct
并class
写在结构/类名的前面。C++ 旨在能够解析几乎未修改的 C 代码(虽然它们是两种独立的语言)。所以基本上把关键字class
orstruct
放在任何类名前面都是没有意义的。
它是所谓的详细类型说明符。它在声明性区域中引入了一个新的类名。那就是在您的示例中 ClassName 被引入为一种新类型。