假设我有一个像这样的头文件
namespace a
{
static void fun();
}
我在源文件
中有它的定义namespace a
{
void fun()
{
}
}
此头文件可用于这些文件的自有项目或其他几个项目中。我得到了声明的fun()函数,但没有定义错误。我不明白为什么。但是,如果我从声明中删除静态,它就可以了!
答案 0 :(得分:5)
在这种情况下,static关键字意味着函数fun()的范围仅限于文件,即它具有文件范围。删除静态,它具有全局范围,但仅在命名空间内。