靜態成員函式 靜態成員變數

2021-08-18 17:40:26 字數 1264 閱讀 2964

靜態的成員函式,同靜態資料成員類似,它也是屬於類,而不是屬於某乙個物件的。

靜態成員函式不能訪問非靜態的資料成員,它只能訪問靜態資料成員,也只能呼叫其它的靜態成員函式。

原因是:當前物件的位址(this)是被隱含地傳遞到被呼叫的函式的。但乙個靜態成員函式沒有

this

指標,所以它無法訪問非靜態的成員函式。

由於靜態成員函式是屬於類的,所以,靜態成員函式的呼叫方法為:

類名::靜態成員函式名

();以下關於靜態成員變數

1.初始化

static

成員變數不能安排在類的建構函式中,因為建構函式可能一再被呼叫,而變數的初值卻只應該設定一次。也不要把初始化安排在標頭檔案中,因為它可能會被包含在許多地方。而應該放在

main

函式之中,或全域函式中,或者任何函式之外。

//***********************************==

對於多個的c/c++標頭檔案的包含,一般情況下放在工程的目錄下編譯器就可以正確地找到。 但是對於在不同資料夾下的標頭檔案的包含,當然可以寫完整的路徑,但是這樣有可能會出現將工程拷到別人的機子上執行不了的問題。如果在這個程裡同寫上相對的路徑,那麼不僅在自己的機子上能執行,別人拷了過去也能正確執行。

例如我的乙個工程標頭檔案如下:

c:/f/work/test/testnow/testpage.h

上面的標頭檔案要包含的檔案如下:

c:/f/work/test/testnow/filehelpers/fileinformationlist.h

c:/f/work/test/testnowtray/testtray/share.h

那麼可以在testpage.h上這樣寫:

[cpp] 

view plain

copy

#include "./filehelpers/fileinformationlist.h"  

#include "../testnowtray/testtray/share.h"  

上面#include "./filehelpers/fileinformationlist.h"

的一點表示當前目錄(這些的標記對於接觸過

dos的人來說一定不會陌生吧?)。

#include "../testnowtray/testtray/share.h"

的兩點表示上一級目錄。

其他的照這樣類推。

這樣是不是方便了一點???

靜態成員變數 和 靜態成員函式

資料成員可以分靜態變數 非靜態變數兩種.靜態成員 靜態類中的成員加入static修飾符,即是靜態成員.可以直接使用類名 靜態成員名訪問此靜態成員,因為靜態成員存在於記憶體,非靜態成員需要例項化才會分配記憶體,所以靜態成員不能訪問非靜態的成員.因為靜態成員存在於記憶體,所以非靜態成員可以直接訪問類中靜...

靜態成員變數和靜態成員函式

我們學到的類物件的成員變數一般都是這個物件專屬,不能為其他物件所共有。然而在實際程式設計中我們需要統計物件的數量等問題,所以就必須設定乙個類的物件所共有的變數,就是靜態成員變數。首先通過乙個簡單的例程 說明靜態成員如何使用。includeusing namespace std class a vir...

C 靜態成員變數,靜態成員函式

資料成員可以分靜態變數 非靜態變數兩種.靜態成員 靜態類中的成員加入static修飾符,即是靜態成員.可以直接使用類名 靜態成員名訪問此靜態成員,因為靜態成員存在於記憶體,非靜態成員需要例項化才會分配記憶體,所以靜態成員不能訪問非靜態的成員.因為靜態成員存在於記憶體,所以非靜態成員可以直接訪問類中靜...