目录
类中的静态成员函数,拥有下面这些特性。
1.没有this指针
参考下面程序:
#include<iostream>
class Test
{
static Test * fun()
{
return this; // 编译错误
}
};
int main()
{
return 0;
}
编译失败,报错:
`this’ is unavailable for static member functions
静态成员函数其实不需要this指针,因为它们是类级别的,而不是对象级别的。它可以在所有对象之间共享。
2.不能为virtual
也就意味着它不能访问vptr。为何?因为静态成员函数可以不使用对象来调用,vptr对它不适用,因为vptr只在构造函数中生成。
3.不能做为重载函数
如果两个成员函数有着相同函数名称以及参数类型,只是一个是静态函数,另一个非静态