1. 程式人生 > >C++面試題目一

C++面試題目一

static變量 man 對象 stat 理解 但是 基礎 靜態成員 指針

一、基礎知識

  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++面試題目一