静态成员函数

静态成员函数视为具有类范围。 与非静态成员函数相比,这些函数没有隐式 参数;因此,它们可以直接使用静态数据成员、枚举或仅嵌套类型。 静态成员函数中访问,而无需使用相应的类类型的对象。 请看以下示例:

示例

// static_member_functions.cpp
#include <stdio.h>

class StaticTest
{
private:
    static int x;
public:
    static int count()
    {
        return x;
    }
};

int StaticTest::x = 9;

int main()
{
    printf_s("%d\n", StaticTest::count());
}
  

注释

在上面的代码中,类 StaticTest 包含静态成员函数 count。 此函数返回私有类成员的值,但不一定与类型 StaticTest特定对象。

静态成员函数有外部链接。 这些函数没有 此指针。 因此,以下限制适用于此类功能:

  • 它们无法访问非静态类成员数据使用成员选择运算符 (.– AMP_GT)。

  • 它们不能声明为 虚拟

  • 它们不能与具有相同的参数类型的非静态函数同名。

    备注

    成员选择运算符的左边 (.– AMP_GT) 选择静态成员函数不会计算。,如果该函数为其副作用,使用方法很有用。例如,表达式 SideEffects().CountOf() 不调用函数 SideEffects。

请参见

参考

此指针