C 經典問題

2021-08-05 21:45:27 字數 1130 閱讀 5090

指標和引用的區別?

1.指標不用初始化 但是引用不行,所以引用比指標安全

2.一經引用就不能改變引用關係 但是指標可以改變所指向的物件

3.指標可以指向空 但是引用不能引用空

4.傳參的時候 指標傳遞的是位址 引用傳遞的是本身(盡量使用引用傳參 方式發生拷貝節約時間空間)

5.成員變數裡面的引用必須初始化列表中初始化

6.彙編上是一樣的

7.指標指向的臨時量會釋放 引用不會

const

1.c語言中const修飾的量是變數 但是c++中是常量 必須初始化

2.引用內建型別的常量 要加const產生臨時量

3.可改變指標能力

const define區別

1.編譯處理方式不同

2.安全檢查 const在編譯時檢查型別

3.const只有乙份拷貝 define有多份拷貝

4.高線率 沒有給const分配記憶體  儲存在符號表中 (編譯期常量)

static

1.變數 所有物件共享 類外初始化

2.方法 作用域呼叫 不依賴物件 沒有this 所以不能定義為虛函式 不能呼叫非靜態成員

3.僅本檔案可見

4.static 的變數初始化且不為零的在.data  否則在.bss 

5.限制作用域

extern  

1.2.

c++的過載

1.c中過載符號只有函式名 c++中還包含了引數型別

2.過載的條件:函式名相同引數列表不同 作用域相同

3.繼承結構中可以形成過載

什麼是純虛函式?

1.沒有函式體且等於0的虛函式

為什麼要有純虛函式/抽象類?

1.抽象類 不能例項化 但是可以有指標和引用 

說說虛函式表什麼時候產生,在**存放?

1.編譯時 存在於.rdata

建構函式和析構函式能不能成為虛函式,為什麼?

1.構造不可以(沒有形成物件)析構可以:虛函式表需要依靠vfptr 存在於物件前四個位元組

2.繼承結構中析構函式 ->虛函式: 派生類在對上的話 基類指標只能析構基類部分 成為虛函式之後析構派生類

c++的多型?

1.乙個基類指標指向多個派生類 並通過基類指標訪問各個派生類的虛函式

C 經典問題總結一

no.1c 是託管語言,那麼是不是說明使用c 就能保證不會出現記憶體洩露以及其他資源的洩漏?如果不是,那麼在哪些情況下可能出現洩漏?答案 c 不能保證沒有資源洩漏。比如如下幾種情況可能會造成資源洩漏 1 呼叫native code,比如用p invoke或者呼叫com 2 讀寫檔案時的,沒有及時cl...

C語言之遞迴經典問題

目錄 一 十進位制轉換 二 前中序遍歷確定後序遍歷 三 漢諾塔 四 八皇后問題 五 細胞 分治法將原問題劃分為若干個規模較小而結構與原問題相同或相似的子問題,然後分別解決這些子問題,最後合併問題的解即為原問題的解。遞迴很適合實現分治思想,遞迴的邏輯中有兩個重要概念 遞迴邊界和遞迴式。十進位制數遞迴轉...

C 鍊錶經典問題(指標)

1 可以同時使用多個指標。需要同時跟蹤多個節點,要記住跟蹤哪些節點,並可以自由使用幾個不同的節點指標來同時跟蹤這些節點。同時使用多個節點,取適當的名稱,以便除錯 2 需要跟蹤當前節點的前乙個節點。無法追溯到鍊錶的前乙個節點,因此不僅要儲存當前節點,還要儲存前乙個節點。雙鏈表不同。3 雙鏈表 多乙個引...