C C 知識點複習筆記18 3 3

2021-08-16 01:58:48 字數 1055 閱讀 9710

建構函式不能宣告為虛函式

儲存型別

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....