【C++入門(一)】
- 1.關鍵字
- 2.命名空間
- 命名空間三種表達方式
- 3.預設引數
- 預設引數的分類
- 4.函式多載
- 概念
- 面試題:為什么函式多載C++可以,C語言不可以?(詳解)
1.關鍵字
C++總計63個關鍵字

2.命名空間
在C/C++中,變數、函式和類都是大量存在的,這些變數、函式和類的名稱將都存在于全域作用域中,可能會導致很多沖突,
使用命名空間的目的是對識別符號的名稱進行本地化,以避免命名沖突或名字
污染,namespace關鍵字的出現就是針對這種問題的



命名空間三種表達方式



一個命名空間就定義了一個新的作用域,命名空間中的所有內容都局限于該命名空間中
3.預設引數
預設引數是宣告或定義函式時為函式的引數指定一個默認值,在呼叫該函式時,如果沒有指定實參則采用該默認值,否則使用指定的實參
預設引數的分類
全預設引數

半預設引數

注意:
半預設引數必須從右往左依次來給出,不能間隔著給
預設引數不能在函式宣告和定義中同時出現
4.函式多載
概念
函式多載:是函式的一種特殊情況,C++允許在同一作用域中宣告幾個功能類似的同名函式,這些同名函式的形參串列( 引數個數 或 型別 或 順序)必須不同,常用來處理實作功能類似資料型別不同的問題
- 個人理解:函式雖同名,但是多功能,彌補了C語言不能命名同名函式的缺陷

面試題:為什么函式多載C++可以,C語言不可以?(詳解)
- 首先一個C/C++程式運行起來要經理以下幾個階段:預處理、編譯、匯編、鏈接


如果只有申明,沒有定義,就會找不到

接下來我們在Linux里演示一下
首先寫一個C程式

結果是無法編譯的

我們再通過objdump -S test1c(查看反匯編命令)指令可以查看編譯程序

如果有同名函式的話,我們就無法知道到底調的是哪一個add函式

我們再寫一個C++程式

我們再通過objdump -S test2cpp(查看反匯編命令)指令可以查看編譯程序

總結:只要引數不同,函式出來的名字也不同,自然就不會沖突,在鏈接的程序中就可以找到
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/255252.html
標籤:其他
上一篇:服務的斷路器:Hystrix


