静态成员函数

来源:互联网 发布:中国大数据研究院英语 编辑:程序博客网 时间:2024/06/01 09:03

静态成员函数与静态成员变量一样,都不属于一个对象,而是属于整个类。公有的静态成员函数在未创建对象时也可以使用,它的调用与静态成员变量一样,在静态成员函数名前加上类名和限定符(如A::)。我们也可以通过对象来访问静态成员函数。

1.静态成员函数是属于整个类的,因此它不能访问某个对象的成员变量,因为它没有指向该对象的this指针,不过它可以访问该类的静态成员变量。

2.要使用类成员名限定来访问静态成员,不要使用对象名,因为静态成员是类的成员而不是对象的成员。

3.静态成员可以被继承,基类和派生类都可以共享该静态成员,其他特性与一般成员类似。

4.类中的任何成员函数都可以访问静态成员,但是静态成员函数不能直接访问非静态成员,只能通过对象名访问该对象的非静态成员。这是因为静态成员函数是属于整个类的,没有指向某个对象的this指针。如:

#include <iostream>
using namespace std;

class A{
public:
 void show(int i){x=i;cout<<x<<endl;}
 //void static show1(int j){x=j;cout<<x<<endl;}//静态成员函数没有指向该对象的this指针,所以不能访问该对象的成员数据
 void static show1(int j){y=j;cout<<y<<endl;}
private:
 int x;
 int static y;
};
int A::y=10;
int main(){
 A a;
 a.show(1);
 a.show1(2);
 return 0;
}

输出:1     2

5.静态成员函数不能被说明为虚函数

 

 

原创粉丝点击