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]是第二个类的名称。