谁能告诉我在类之外声明静态函数的目的是什么?这2有什么区别?在这种情况下使用静态有什么好处吗?
static void someRandomFunction();
int main()
{
someRandomFunction();
return 0;
}
和
void someRandomFunction();
int main()
{
someRandomFunction();
return 0;
}
最佳答案
在命名空间范围内,static
给出了一个名称internal links,这意味着它只能在包含定义的翻译单元内访问。没有static
,它有外部链接,并且可以在任何翻译单元中访问。
因此,在编写仅用于本单元的函数时,您将使用 static
(或者,一个未命名的命名空间);内部链接意味着其他单元可以使用相同的名称定义不同的功能而不会引起命名冲突。
非静态函数(以及一般的全局名称)最好在 header 中声明,以确保使用它们的每个翻译单元都获得相同的声明。
关于c++ - 类外的静态函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25724787/