public class staticdemo
}
上述**,eclipse編譯器會報錯"cannot make a static reference to the non-static field m_age". why?
here is my understanding:
首先,我們要清楚幾個問題
(1)靜態成員何時存在?
答曰:類存在了,靜態成員就存在了
(2)非靜態成員何時有意義,即何時能被呼叫?
答曰:沒有物件的存在,你叫我如何有意義。先有物件,再來調我。
現在,應給明了了吧,定義完類,讓乙個已存在的東西(靜態成員函式)呼叫乙個還不存在的東西(非靜態成員變數),error !
靜態成員函式呼叫非靜態成員變數 p
c 會區分兩種型別的成員函式 靜態成員函式和非靜態成員函式。這兩者之間的乙個重大區別是,靜態成員函式不接受隱含的this自變數。所以,它就無法訪問自己類的非靜態成員。在某些條件下,比如說在使用諸如pthread 它不支援類 此類的多執行緒庫時,就必須使用靜態的成員函式,因為其位址同c語言函式的位址相...
用靜態成員函式呼叫非靜態成員變數
今天寫程式要用到乙個計時器,然後需要建立乙個新的執行緒,這個執行緒是ctestdlg的乙個成員函式,必須定義為靜態的.但是這個時候就不能去訪問非靜態成員變數了,這裡找到乙個很好的解決辦法 先上 1.執行緒函式的定義 private intcount time ctime c time bool ge...
為什麼靜態方法無法直接呼叫非靜態成員變數和方法
靜態方法無法直接呼叫非靜態成員變數和方法 看到這句話,要想到形容的是這樣的如下 靜態方法裡面無法呼叫非靜態變數 下面在寫乙個對比非靜態的方法和靜態方法呼叫變數對比 問題原因 靜態變數和靜態的方法是屬於類,不屬於物件,呼叫的時候不需要例項化 當然如果你非要例項化之後在呼叫也是可以的 非靜態的變數和方法...