“static”对命名空间中的方法有什么影响?

Ala*_*inD -1 c++

在命名空间的上下文中是否static意味着什么?func2两种方法看起来是等效的。

// MyHeader.h
namespace TestNameSpace
{
    int func1() { return 1; }
    static int func2() { return 2; }
}

// SomeFile.cpp
#include "MyHeader.h"
// ...
int test1 = TestNameSpace::func1(); // 1
int test2 = TestNameSpace::func2(); // 2
Run Code Online (Sandbox Code Playgroud)

The*_*ind 6

static函数(不是类的成员)仅在定义它们的编译单元中可见。除此之外,这两个之间不应该有任何区别

  • 小警告:这对于不是类成员的静态函数是正确的。静态成员函数则完全不同。+1。 (2认同)