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