C 知識點筆記1

2021-10-25 12:34:28 字數 1050 閱讀 3972

1 物件間的關係包含

乙個物件是另乙個物件的屬性。

繼承乙個物件是另乙個物件的特例。

關聯乙個物件的引用是另乙個物件的屬性。(沒有特定規範)

強關聯:引用

弱關聯:指標

2 虛表指標

當物件中有虛函式時,

呼叫 建構函式、拷貝建構函式開始第一件事就是設定虛表指標指向該物件

析構函式是重置虛表指標

析構函式可以設計成虛的,建構函式不可以

沒寫析構函式的話,系統不會自動生成析構函式,只有乙個語義的析構

new delete new delete

3 const 賦值相容性規則

int a =10;

int*p =

&a;//p指向a,可以改變a的值,也可以值向別的變數。

const

int*p =

&a;//p指向a,但不能改變a的值,但可以指向別的變數。

int*

const p =

&a;//p指向a,可以改變a的值,但不可以指向別的變數。

const

int*

const p =

&a;//p指向a,不能改變a的值,也不能指向別的變數。

普通物件優先調動普通方法,沒有普通方法也可以調動常方法。

常物件只能調動常方法。

4 c++中無法獲取返回值

int

fun(

)

5 自旋鎖

相對於互斥鎖,自旋鎖是一種輕量級的鎖。

別的執行緒獲取了鎖,cpu依然占用著該執行緒資源。

而互斥鎖在需要等待時,不會一直空轉消耗cpu。

會阻塞並切換到別的執行緒執行,較為耗時。

因此,在鎖的競爭不繁忙,和該鎖保持的**執行時間較短的情況下,可以使用自旋鎖,不會因為等待時間長而浪費cpu資源。

C 知識點筆記

在全域性域中宣告的變數會自動初始化為0 如果變數是在區域性域中定義的,則系統不會向它提供回初始值0,這些物件被認為是未初始化,其值隨機 有的編譯器可能答會為你初始化為0,但千萬別依賴於這種可能行為,因為它會給你的程式帶來未定義的行為 區域性變數 在乙個函式內部定義的變數就是區域性變數。作用範圍 只侷...

C 面試知識點1

c 指標和引用的區別 相同點 1 都是對位址的概念 指標指向一塊記憶體,而引用是某塊記憶體的別名。不同點 1 指標本身就是乙個物件,允許對指標賦值和拷貝。引用僅是個別名 2 指標不需要在定義的時候賦初值,即可以為空,而且指標生命週期內可以先後指向幾個不同的物件。但是引用必須要初始化 不但不能為空而且...

c語言知識點 1

1.參與運算的資料是什麼型別,結果也是什麼型別,並且參與運算資料必須是同一型別,會進行自動型別轉換 double d 10 3 3.00000,還有自動型別提公升 2.int size sizeof char 僅這種情況括號不能去掉 3.c語言中,條件成立為真,不成立為假,任何數值都有真假性,只有0...