當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ Static member用法及代碼示例


在上一篇文章中,我們討論了 C++ 中的靜態數據成員,我們討論了靜態數據成員可以通過成員函數訪問,但該函數應該是靜態成員函數

靜態成員函數是一種特殊的成員函數,它隻用於訪問靜態數據成員,不能通過靜態成員函數訪問任何其他普通數據成員。就像靜態數據成員一樣,靜態成員函數也是一個類函數;它不與任何類對象相關聯。

我們可以使用以下語法訪問具有類名的靜態成員函數:

	class_name::function_name(perameter);

考慮這個例子:

#include <iostream>

using namespace std;

class Demo
{
	private:	
		//static data members
		static int X;
		static int Y;

	public:
	//static member function
	static void  Print()
	{
		cout <<"Value of X:" << X << endl;
		cout <<"Value of Y:" << Y << endl;
	}
};

//static data members initializations
int Demo::X =10;
int Demo::Y =20;


int main()
{
	Demo OB;
	//accessing class name with object name
	cout<<"Printing through object name:"<<endl;
	OB.Print();
	
	//accessing class name with class name
	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

在上麵的程序中XY是兩個靜態數據成員和print()是一個靜態成員函數。根據C++中的靜態規則,隻有靜態成員函數才能訪問靜態數據成員。非靜態數據成員永遠不能通過靜態成員函數訪問。

注意:內聯函數永遠不能是靜態的。



相關用法


注:本文由純淨天空篩選整理自 Static member function in C++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。