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


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++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。