C++面試題目一
一、基礎知識
1、基本語言
1、說一下static關鍵字的作用
傳送門:https://www.cnblogs.com/biyeymyhjob/archive/2012/07/19/2598815.html
個人理解:a.所有未加static的全局變量和函數具有全局可見性。加了static,就會對其源文件隱藏。而對於函數來講,static的作用就僅僅局限於隱藏。
b.保持變量內容的持久。(static變量中的記憶功能和全局生存期)程序開始時的初始化將靜態存儲區中的全局變量和static變量,而static控制其可見範圍。說到底還是隱藏。
如果作為static局部變量在函數內定義,它的生存期為整個源程序,但是其作用域仍與自動變量相同,只能在定義該變量的函數內使用該變量。
退出該函數後, 盡管該變量還繼續存在,但不能使用它.
c.將變量初始化為0(如稀疏矩陣的初始化)。
d.C++中的類成員聲明static: 1.類的靜態成員函數屬於類而非類的對象,沒有this指針,所以僅能訪問類的靜態數據和靜態成員函數。
2.不能將靜態成員函數定義為虛函數。
3.靜態數據成員必須被初始化,因為其是靜態存儲的。
4.靜態成員初始化一般在類體外進行,前面不加static,初始化時不加成員訪問權限控制符(public private等)
5.節省子類對父類靜態成員的訪問時間,節省了子類的內存空間。
6.在子類定義一個和父類相同的靜態變量可以屏蔽父類的影響(name-mangling)
C++面試題目一