static靜態成員的定義

2021-06-04 19:03:05 字數 301 閱讀 1283

問題就處在 genmethod::generate()上。

genmethod::generate();

只有靜態成員函式可以這樣呼叫。

如果是普通成員函式,要通過物件來呼叫。

genmethod是乙個類,不是乙個物件。

類是不分配記憶體的,除非在裡面有宣告的靜態函式或變數,才會在程式的棧中分配記憶體。

這樣寫,編譯器就以為這是個靜態函式,但是一找發現,不是的,就報錯了。

應該用這個類定義乙個genmethod的物件***,就會分配記憶體了,包括你的***.generate()就都可以使用了

靜態成員函式與靜態成員 static

引用 成員函式 無論靜態函式還是非靜態函式,都是屬於類的 這一點與資料成員的靜態非靜態不同 物件並不擁有函式的拷貝.兩者的區別在於 非靜態的函式由類物件 加.或指標加 呼叫,這時將向函式傳遞this指標.而靜態函式由類名 或物件名.呼叫,但靜態函式不傳遞this指標,不識別物件個體,所以通常用來對類...

Static之靜態成員

using system using system.collections.generic using system.linq using system.text 靜態成員 1.只存在此成員的乙個副本 2.當包含在這個類的應用程式被裝載時,才建立靜態成員 3.在應用程式的整個生存週期記憶體一直存在。...

C 靜態成員和靜態成員函式static

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