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数据成员。不能通过静态成员函数访问非静态数据成员。

注意:内联函数永远不能是静态的。