我想在另一个文件中声明一个类的静态成员函数.我想做的事情看起来像这样:
BigMassiveHeader.h:
class foo
{
static void init_foos();
}
Run Code Online (Sandbox Code Playgroud)
Main.cpp的:
class foo;
void foo::init_foos();
int main(char** argv, int argc)
{
foo::init_foos()
}
Run Code Online (Sandbox Code Playgroud)
这失败了"错误C2027:使用未定义类型'foo'"
有没有办法完成我想做的事情,使init_foos成为一个自由函数,或包括BigMassiveHeader.h?(BigMassiveHeader.h显着影响编译时间,并且包含在任何地方.)
Dav*_*eas 10
您无法转发声明类的成员,无论它们是否为静态.
你不能转发声明你的类的成员,但你可以在该命名空间内创建一个命名空间和一个函数,然后转发声明。
namespace nsfoo
{
void init_foos();
}
Run Code Online (Sandbox Code Playgroud)
如果需要,您的班级可以使用此功能。