静态成员函数和全局函数有什么不同?

Hel*_*rld 4 c++

静态成员函数和全局函数有什么不同?

void globalFunc()
{
}

class Test
{
  public:
    //In grammar side, object's not own this function
    static void staticFunc(); 
};
Run Code Online (Sandbox Code Playgroud)

静态成员函数是全局函数,但它可以分类含义并限制访问范围.

但我无法理解为什么静态成员函数的调用约定是[this call].

我理解正常的成员函数必须是[this call],因为它必须需要调用者对象的地址,但为什么静态成员函数有这个调用约定?我认为它不需要调用者的地址,因为它不是对象的功能.静态成员函数和全局函数之间有什么区别吗?(不在语法方面但也低端)

Lin*_*Man 7

静态类函数可以

  • 访问类中的私有和受保护静态数据成员.
  • 访问私有和受保护的静态函数.
  • 如果静态函数具有类的实例,则访问类中的私有和受保护的实例数据成员.
  • 如果静态函数具有类的实例,则访问私有和受保护的每实例函数.
  • 基类中具有相同名称的阴影函数.
  • 访问基类中受保护的数据和函数.

全局非朋友功能不能执行任何操作.

  • 您应该添加只能访问STATIC成员和函数. (3认同)