国产激情久久久久影院小草_国产91高跟丝袜_99精品视频99_三级真人片在线观看

c++程序語言特點

時間:2024-09-28 12:12:17 計算機等級 我要投稿
  • 相關推薦

c++程序語言特點

  C語言是1972年由美國貝爾實驗室的D.M.Ritchie研制成功的。它不是為初學者設計的,而是為計算機專業(yè)人員設計的。下面是小編搜集的c++程序語言特點,希望大家認真閱讀!

  1. C++內(nèi)存可分為以下區(qū)域:

  全局/靜態(tài)數(shù)據(jù)區(qū)

  常量數(shù)據(jù)區(qū)(其中的數(shù)據(jù)不能被修改)

  代碼區(qū)

  堆

  棧

  備注:全局/靜態(tài)區(qū),常量數(shù)據(jù)區(qū)實際上都在進程的數(shù)據(jù)區(qū)中。

  2.堆和棧上分配內(nèi)存的性能比較:

  (1) 棧上的內(nèi)存是系統(tǒng)自動分配的,不需要用戶主動分配和釋放;

  (2) 棧上分配的內(nèi)存效率比較高(不需要經(jīng)過堆管理器分配,一系列查找空閑堆的邏輯);

  (3) 棧上分配的內(nèi)存,是連續(xù)的,不會導致內(nèi)存碎片。

  3. 虛函數(shù)表指針

  虛函數(shù)表的指針,占據(jù)類對象內(nèi)存最開始的4個字節(jié)。

  (1)存放位置:

  類對象開始的4個字節(jié)存放的是虛函數(shù)表的指針,而虛函數(shù)表本身放在常量區(qū)。

  (2)創(chuàng)建時機:

  在對象創(chuàng)建時,構造函數(shù)中會調(diào)用編譯器在構造函數(shù)內(nèi)部插入的初始化代碼,來初始化虛函數(shù)指針,使其指向正確的虛函數(shù)表。

  (這就解釋了為什么構造函數(shù)不能是虛函數(shù)的問題)

  4. this指針

  類的非靜態(tài)成員函數(shù),都會默認的傳this指針作為參數(shù),以便在函數(shù)內(nèi)部可以通過this指針訪問相應的類對象。

  在進入函數(shù)體前創(chuàng)建并傳參,在函數(shù)返回時銷毀。

  5. 類對象的創(chuàng)建過程

  首先,申請該對象對應的內(nèi)存;

  其次,對類對象進行初始化,即調(diào)用類的構造函數(shù)。包括兩個步驟:執(zhí)行初始化列表;執(zhí)行構造函數(shù)體。

  注意:常量和引用類型的變量,必須在初始化列表中進行初始化。

  6. 內(nèi)聯(lián)函數(shù)的聲明

  內(nèi)聯(lián)函數(shù)聲明有兩種方式,通常我們只知道第一種:

  (1)顯式聲明:用“inline”關鍵字聲明;

  (2)隱式聲明:在類內(nèi)聲明成員函數(shù)時,同時提供其函數(shù)體實現(xiàn),這時候函數(shù)會被定義成內(nèi)聯(lián)函數(shù),不需要“inline”關鍵字聲明。

  例如:

  Class Student

  {

  public:

  String GetName() { return name; }

  }

  內(nèi)聯(lián)函數(shù)的優(yōu)點:

  (1) 避免一般函數(shù)調(diào)用的參數(shù)壓棧,棧幀開辟與回收,寄存器保存與恢復等開銷;

  (2) 由于編譯時函數(shù)代碼是完全展開的,編譯器可以對調(diào)用函數(shù)處的代碼做更深入的優(yōu)化。

  缺點:多處調(diào)用,且代碼量較大的時候,會因為展開過多重復代碼導致目標程序變大。

【c++程序語言特點】相關文章:

概述C++語言特點08-19

播音主持的語言特點07-20

演講語言特點有哪些07-28

播音主持的語言特點及要求06-15

播音主持的語言特點及語言風格06-30

C++語言的基本符號08-01

精選C++面試題及答案05-23

2017年計算機二級C++語言程序設計考試內(nèi)容08-11

C++語法規(guī)則積累10-13

商務英語四大語言特點08-07