静态成员函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
静态成员函数
静态成员函数是指在类中声明的用static关键字修饰的函数,也叫作类函数。
一般来说,它不需要访问类的数据成员,它只可以调用类的静态成员函数和友元函数,不可以调用普通成员函数,但它可以调用其他所有的成员函数。
静态成员函数也可以用于构造函数那里,因为只有静态成员函数没有隐式的this指针,所以,静态成员函数无法访问非静态成员数据。
二、静态成员函数的作用
1、它可以实现自定义的初始化及赋值,所有的对象在创建时都使用相同的初始化及赋值,这样可以节省很多时间。
2、用它可以实现全局函数的功能,但与全局函数不同的是,它可以访问类的private部分。
3、它可以提供对象的总数,通过静态友元函数来实现,可以检测构造函数和析构函数的调用次数,从而检测对象的数量。
4、它可以返回类的静态成员变量,也可以用于类的计算,这种方法可以使我们不必使用全局变量。
三、静态成员函数的特点
1、只有在类中才能使用静态成员函数,而不能直接在主程序中使用它们。
2、它可以调用类中所有的静态成员函数,但不能调用普通成员函数。
3、它不能操作类的非静态成员数据,但可以调用其他所有的成员函数。
4、它只能被类的静态成员函数和友元函数调用。
四、实例
下面我们来看一个使用静态成员函数的实例,这个实例演示了如何使用静态成员函数来访问类的静态成员变量。
#include <iostream>
using namespace std;
class StaticClass
{
private:
static int count;
public:
//静态成员函数
static int getCount()
{
return count;
}
//普通成员函数
void setCount(int val)
{
count = val;
}
};
//静态变量初始化
int StaticClass::count = 0;
int main()
{
//设置count的值
StaticClass::setCount(5);
//获取count的值
cout<<count的值为:<<StaticClass::getCount()<<endl;
return 0;
}
上面的程序中,定义了一个静态变量count,在类外面定义了这个静态变量,指定了它的初值为0,在类中定义了一个静态成员函数getCount(),用于访问静态变量count,这里不用构造函数,也没有实例化任何对象,只要使用类名来调用静态成员函数就可以使用私有成员count,并且可以通过它获取静态变量count的值,并将这个值输出在屏幕上。
五、总结
静态成员函数是指在类中用static关键字修饰的函数,它可以访问类的静态成员变量,但不可以访问非静态成员变量,它只能在类
中使用,并且它可以用作全局函数,因为它可以被友元函数和其他的静态成员函数调用。
此外,静态成员函数可以用于构造函数,一般用于提供对象的总数、实现自定义的初始化及赋值等功能。