相同點:
(1) 都是位址的概念;
(2 )指標指向一塊記憶體,它的內容是所指記憶體的位址;引用是某塊記憶體的別名。
不同點:
(1) 指標是乙個實體,而引用是乙個別名;
(2)引用使用時無需解引用(*),指標需要解引用;
(3)引用定義時必須初始化,且之後不可變;指標可變;
(4)引用不能用const修飾,指標可以;
(5)引用不能為空,指標可以為空;
(6)「sizeof 引用」得到的是所指向的變數(物件)的大小,而「sizeof 指標」得到的是指標本身(所指向的變數或物件的位址)的大小;
(7)指標和引用的自增(++)運算意義不一樣;
使用內聯函式可以提高效率,但是使用它是有條件的
(1)邏輯簡單,呼叫頻繁的函式建議使用內聯
(2)遞迴函式無法使用內聯函式
另外,inline只是給編譯器的乙個建議,到底用不用由編譯器決定
繼承分為公有繼承、保護繼承和私有繼承
隱藏
派生類共有繼承了父類,並且有與父類相同函式名的方法。
當例項化派生類物件時,可以直接訪問到派生類的此函式,而不能訪問到父類的該同名函式。
要訪問父類的該函式要進行網域名稱解析:
b b;
b->a::abc();
就算引數不同也是隱藏,無法構成過載。
另外,符號::前一定是乙個類
覆蓋:
如果子類與父類定義有相同函式名的虛函式,則在子類的虛函式表之中這個函式的位址被子類的函式位址覆蓋。
兩者的路徑不一樣
<.h>引入檔案時會搜尋程式的預設庫
「.h」會在程式目錄下找引入的.h檔案
不能將基類的物件賦值給派生類的物件。
也不能用派生類的指標指向基類的物件。
下面給兩個正確使用方法:
1、子類物件賦值給父類物件
子類的方法和資料變數將被截斷。
2、父類指標指向子類物件
父類指標無法指向子類的方法和資料變數,父類的指標或者物件只能呼叫自己的成員方法,而不能呼叫子類的成員方法。
虛析構函式
當存在繼承關係時,用父類的指標指向堆上的子類物件,並需要父類的指標釋放這塊記憶體時,就需要使用虛析構函式。
(1)構造時按照繼承順序依次呼叫建構函式,析構時順序相反。
(2)無論繼承的層級有多少層,只要保持著直接/間接的父子關係,子類都可以與自己的直接父類/間接父類保持是乙個的關係,父類的指標可以操作直接子類/間接子類。
C 面試基礎知識總結 類
訪問控制和封裝 友元名字查詢與類的作用域 類的靜態成員與普通成員 在成員函式中,可以直接訪問資料成員,而在這個過程中實際上隱式地使用了乙個名為this的隱式指標,該指標指向正是這個類物件。include using namespace std struct people int main int a...
面試總結 測試基礎
用例id 用例名稱 測試目的 測試級別 參考資訊 測試環境 前提條件 測試步驟 預期結果 設計人員。等價類劃分法 邊界值分析法 因果圖法 正交實驗設計法 場景設計法 需求分析 測試準備 測試執行 結果分析與調優 報告與總結 需求調研 prd評審 開發與測試準備相關文件 轉測 冒煙測試 測試 完成 上...
C 面試總結
深度不夠,學習能力一般,表達業餘。物件導向的三大特性 封裝性,繼承性,多型性。智慧型指標 unique ptr不允許多個指標共享資源,可以用標準庫中的move函式轉移指標 shared ptr多個指標共享資源,weak ptr不詳 內部函式 靜態函式 static 在定義它的檔案中可以被呼叫,在同一...