C ++中的静态成员函数
在上一篇文章中,我们讨论了C++中的静态数据成员,并讨论了可以通过成员函数访问静态数据成员,但是该函数应该是静态成员函数
静态成员函数是一种特殊的成员函数,仅用于访问静态数据成员,其他任何常规数据成员均无法通过静态成员函数访问。就像静态数据成员一样,静态成员函数也是类函数。它不与任何类对象关联。
通过使用以下语法,我们可以使用类名称访问静态成员函数:
class_name:: function_name(perameter);
考虑示例:
#include <iostream>
using namespace std;
class Demo
{
private:
//静态数据成员
static int X;
static int Y;
public:
//静态成员函数
static void Print()
{
cout <<"Value of X: " << X << endl;
cout <<"Value of Y: " << Y << endl;
}
};
//静态数据成员 initializations
int Demo :: X =10;
int Demo :: Y =20;
int main(){
Demo OB;
//使用对象名称访问类名称
cout<<"Printing through object name:"<<endl;
OB.Print();
//用类名访问类名
cout<<"Printing through class name:"<<endl;
Demo::Print();
return 0;
}输出结果
Printing through object name: Value of X: 10 Value of Y: 20 Printing through class name: Value of X: 10 Value of Y: 20
在上面的程序中,X和Y是两个静态数据成员,并且print()是一个静态成员函数。根据C++中的static规则,只有static成员函数才能访问static数据成员。不能通过静态成员函数访问非静态数据成员。
注意:内联函数永远不能是静态的。