Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在成员函数声明前面的Class关键字_C++_Lammps - Fatal编程技术网

C++ 在成员函数声明前面的Class关键字

C++ 在成员函数声明前面的Class关键字,c++,lammps,C++,Lammps,我在阅读LAMMPS(一个开源项目)中的文件时,遇到了这一行语法 class FixPropertyGlobal* add_fix_property_global(int narg,char**arg,const char*); 在一个.h文件(Modify.h)中进行类声明。我的问题是:为什么要在一个看似成员函数的函数前面添加关键字类?这个语法是什么意思?这只是一个全局函数的声明,而不是成员函数的声明 这相当于: class FixPropertyGlobal; FixPropertyGlo

我在阅读
LAMMPS
(一个开源项目)中的文件时,遇到了这一行语法

class FixPropertyGlobal* add_fix_property_global(int narg,char**arg,const char*);

在一个
.h
文件(
Modify.h
)中进行类声明。我的问题是:为什么要在一个看似成员函数的函数前面添加关键字类?这个语法是什么意思?

这只是一个全局函数的声明,而不是成员函数的声明

这相当于:

class FixPropertyGlobal;
FixPropertyGlobal* add_fix_property_global(int narg,char**arg,const char*);

谢谢你的迅速回复。关于调试大型开源项目,您认为我可以问您另一个问题吗?我将在稍后打开另一个线程。@dl23lin您当然可以询问,但另一个SO帖子将是合适的。@dl23lin我理解您的意思。只有在尚未定义类时才需要添加
class
。它让编译器知道,函数返回一个指向某个名为
FixPropertyGlobal
的类的指针,该类稍后将在文件中定义。如果定义了类,它仍然有效,但只有在没有定义的情况下才有必要。例如,当您有一个循环依赖项,其中类a需要有类B的成员,反之亦然时,这很有用。AFAIK,无论哪一个先到(在第二个定义之前),都只能有一个class[second class]*类型的成员。其中[second class]是第二个类的名称。