您好,登錄后才能下訂單哦!
這篇文章主要講解了“C++面試易錯語法特性有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C++面試易錯語法特性有哪些”吧!
面試頻率高的 C++ 語法特性:
for (int i = 0; i <= 10; i++) 中的 i 位于語句作用域
變量存儲類型:自動,寄存器,靜態,外部
引用是對象的另一個名字,主要作為函數形參使用
const 引用必須被定義為 const 類型
break 用于跳出最近的循環或 switch 語句
ifstream(input file stream)
ofstream(output file stream
在 C++ 中盡量避免使用指針和數組,用引用代替指針,vector 代替數組,string 代替 C 風格字符串
指向 const 對象的指針,指針指向的值不能改變:const int a = 10; const int *pa = &a;
const 指針,指針不能改變指向:int a = 0; int *const = &a;
返回指針的函數稱為指針函數
C++ 中參數和返回值的傳遞方式:引用傳遞,值傳遞,指針傳遞
引用傳遞的是引用對象的內存地址
指針是一個實體,而引用僅是個別名
引用只能在定義時初始化,之后不可變,而指針可變
引用沒有 const,指針有 const
引用不能為空,指針可以為空
引用不需要分配內存區域
sizeof(引用) = 變量內存大小,sizeof(指針) = 指針本身的內存大小
面向過程:程序 = 算法 + 數據
面向對象:程序 = 對象 + 消息,對象內部還是算法和數據
結構體用來處理較少的程序基礎數據,而類用來處理復雜邏輯
含有純虛函數的類成為抽象類(抽象接口)
派生類和基類共用靜態成員
類的靜態成員可以成為成員函數的可選參數
類的靜態成員類型可以是所屬類的類型
類的靜態方法只能訪問靜態成員
多態性在 C++ 中通過虛函數和繼承機制來實現
公有繼承保持訪問級別,保護繼承 public 和 protected 都變為 protected 成員,私有繼承全部變為私有成員
基類中的 private 成員不能被繼承
調用復制構造函數:對象通過值傳遞傳入函數體,對象通過值傳遞從函數返回,一個對象通過另一個對象初始化
C++ 支持函數參數個數不確定:int max(int num, ...)
在內聯函數內不允許用循環和 switch 語句,如果存在則視為普通函數編譯代碼
程序中盡量少使用指針形參,會降低可讀性
靜態函數沒有 this 指針
類的私有成員不可以被外部類訪問,但是可以通過宏定義訪問類的私有成員:#define private public,這是一種非常規手段
函數重載是指在相同的作用域中,具有相同的名稱而形參列表不同的多個函數,返回值也可以不同,但不是必須的
STL 和 Boost 等都采用模板技術(大量使用了類模板),使用泛型編程
模板未使用前,編譯器不會編譯該模板,只有在模板被實例化時才生成相應類型的代碼
STL 使用迭代器來遍歷容器
STL 順序容器:vector, deque, list
STL 關聯容器:set(唯一元素的集合), multset(允許一個鍵對應多個實例), map(鍵-值), multimap(允許一個鍵對應多個實例)
begin 迭代器指向容器中的第一個元素,end 迭代器指向最后一個元素的下一個位置
不能存儲 end() 迭代器的返回值,當進行插入或刪除操作后,end() 所指向的元素可能不存在,迭代器失效,應該每次重新計算 end()
泛型編程:獨立于任何特定類實現的方式編寫代碼,針對不同的類型提供不同的實現
如何實現泛型編程:模板技術,函數重載
感謝各位的閱讀,以上就是“C++面試易錯語法特性有哪些”的內容了,經過本文的學習后,相信大家對C++面試易錯語法特性有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。