Static函數在實現的時候也不須要static的修飾,由於static是聲明性關鍵字編程 不在類中函數 Static變量:該變量僅在本cpp文件中有效spa Static函數:該函數僅在本cpp文件中有效對象 在類中遞歸 Static變量:是全部該類對象的實例共有的,僅有一次初始化,爲對象們共有ci Static函數:僅能訪問該類中其餘一樣是靜態成員變量table 訪問方式:效率 能夠是類的實例對象,也能夠是經過類名(不須要實例化)變量 何時使用static方法 對於普通變量 更傾向於設置爲非static,由於static的類變量是全局變量,全局變量的弊端你們應該都瞭解。常見的一個編程錯誤就是錯誤地是用來了static變量,結果幾個實例對象相互影響致使錯誤。 對於常量變量 更傾向於採用static的方式,再加上const、final修飾。由於空間和時間效率都更高,由於不須要構造並保存到每一個類實例中。 對於函數 若是可以採用static(說明沒有訪問到非static的成員變量),則傾向於採用static的方式 ,由於靜態方法的效率高但注意這每每預示着代碼壞味道。舉個例子,好比咱們有一個業務類,裏面有一個函數是遞歸刪除文件。將這個函數設置爲static當然是能夠,但其實這也代表了這個函數和這個類關係不大,將這個函數抽取到相似FileUtil的類裏面會更好。若是一個函數雖然和類關係不緊密,可是暫時不知道是否有其餘類須要調用,則能夠先設置爲類的static函數。往後,若是其餘地方須要使用此函數,static函數抽取起來比非static函數要方便。 |