建構函式不能宣告為虛函式
儲存型別
1、自動變數auto:函式中所有的非靜態區域性變數.
2、靜態變數static:在變數前加上static關鍵字的變數.
3、外部變數extern:一般用作全域性變數作用域的擴充套件(還有定義外部函式的時候前面也可以有乙個extern關鍵字).
4、暫存器變數register:一般經常被使用的的變數(如某一變數需要計算幾千次)可以設定成暫存器變數,register變數會被儲存在暫存器中,計算速度遠快於存在記憶體中的非register變數.
自動變數:隨著函式的進棧和出棧而建立和銷毀
靜態變數:長期存在靜態儲存區,直到程式結束
外部變數:長期存在靜態儲存區,直到程式結束
暫存器變數:離開函式值就會消失
棧記憶體空間在函式結束時就會被自動銷毀
內聯函式
內聯函式是c++的增強特性之一,用來降低程式的執行時間.當內聯函式收到編譯器的指示時,即可發生內聯:編譯器將使用函式的定義體來替代函式呼叫語句,這種替代行為發生在編譯階段而非程式執行階段.
inline int max(int a, int b)
優點:1.它通過避免函式呼叫所帶來的開銷來提高你程式的執行速度.
2.當函式呼叫發生時,它節省了變數彈棧、壓棧的開銷.
3.它避免了乙個函式執行完返回原現場的開銷.
4.通過將函式宣告為內聯,你可以把函式定義放在標頭檔案內.
缺點:1.因為**的擴充套件,內聯函式增大了可執行程式的體積.
2.c++內聯函式的展開是中編譯階段,這就意味著如果你的內聯函式發生了改動,那麼就需要重新編譯**.
3.當你把內聯函式放在標頭檔案中時,它將會使你的標頭檔案資訊變多,不過標頭檔案的使用者不用在意這些.
4.有時候內聯函式並不受到青睞,比如在嵌入式系統中,嵌入式系統的儲存約束可能不允許體積很大的可執行程式.
內聯宣告只是一種對編譯器的建議,編譯器是否採用內聯措施由編譯器自己來決定.
編譯器的內聯與預處理巨集是不同的.
所有類中定義的函式都預設宣告為inline函式.
虛函式不允許內聯.
定義在標頭檔案中的函式不都是內聯函式.
C C 知識點複習筆記18 3 1
運算子過載時要遵循以下規則 1.除了類屬關係運算子 成員指標運算子 作用域運算子 sizeof運算子和三目運算子 以外,c 中的所有運算子都可以過載.2.過載運算子限制在c 語言中已有的運算子範圍內的允許過載的運算子之中,不能建立新的運算子.3.運算子過載實質上是函式過載,因此編譯程式對運算子過載的...
C C 常用知識點筆記
1.return break continue用法總結 首先通過乙個簡單的程式做乙個直觀上的理解 includeint main void printf i am here n printf i am leving n getch return 0 2.c c 語言中struct結構體定義中 pac...
複習知識點
題目 class aclass bextends aclass cextends aclass dextends ba obj newd system.out.println obj instanceofb system.out.println obj instanceofc system.out....