/**
* 书本:【ThinkingInC++】
* 功能:对于静态函数的调用
* 时间:2014年9月17日18:12:03
* 作者:cutter_point
*/
#include <fstream>
using namespace std;
class X
{
int i;
static int j;
public:
X(int ii=0) : i(ii) {j=i;}
int val() const {return i;}
static int incr() {return ++j;}
//由于静态成员函数没有this指针,所以它既不能访问非静态的数据成员,也不能调用非静态的成员函数
static int f() {return incr();}
};
//初始化静态数据
int X::j=0;
int main()
{
ofstream out("StaticMemberFunctions.txt");
X x;
out<<x.val()<<endl;
X* xp=&x;
out<<xp->val()<<endl;
x.f();
out<<x.f()<<endl;
xp->f();
out<<xp->f()<<endl;
out<<X::f()<<endl;
return 0;
}
/*
0
0
2
4
5
*/
【ThinkingInC++】54、对于静态函数的调用
最新推荐文章于 2025-07-26 13:19:46 发布
本文通过一个具体的C++示例程序介绍了如何使用静态成员函数,并展示了静态成员函数不能访问类的非静态数据成员或调用非静态成员函数的特点。通过程序运行结果验证了静态成员函数的行为。
978

被折叠的 条评论
为什么被折叠?



