中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

c++入門之基本概念

發布時間:2020-08-04 15:43:03 來源:網絡 閱讀:208 作者:be_better_ 欄目:編程語言
    c++由c語言衍生而來,最大的特點就是它是一門面向對象的語言,面向過程(c)即需要我們去按照步驟去一步一步寫代碼,而c++提供的面向對象機制幫助我們更有效更方便的開發。
     1.關鍵字:根據版本的不同關鍵字的個數有所不同,c中有我們熟悉的32個關鍵字,而在c++98這個版本中有63個關鍵字,很多都是和c中關鍵字類似,以后遇到會細說
     2.命名空間

概念:使用namespace關鍵字對標識符的名字本地化,以避免命名沖突或名字污染

命中空間的定義方式:namespace N1,命名空間是可以嵌套且可以有相同名稱的命名空間出現,編譯器在編譯時會將其合并為一個命名空間,而在命名空間中定義的變量作用域只限于這個命名空間。

命名空間的三種使用方式:N1::a、using N1::b、using namespace N1;
3.缺省參數:缺省參數就是在定義或聲明函數時為函數的參數指定一個默認值,若沒有傳遞實參則用默認值。
分類:全缺省參數(每個參數都有默認值),半缺省參數

  • 注意:在半缺省參數定義時必須從右向左賦值,這種情況下傳遞的實參優先匹配最左邊的缺省參數。
  • 缺省參數不能在函數定義和聲明中同時定義,最好在聲明。
    4.重載函數:在同一作用域中定義幾個功能類似的函數,其參數列表(參數個數,參數類型,參數順序)必須不同才能構成重載函數。
    在這里就要說一下為什么在c++中可以構成函數重載而在c語言中不行了,c中編譯器對函數的命名是在函數名前加,c++根據編譯器的不同有不同的命名規則,但相同點是都對函數的參數列表在命名時進行了修飾,當然,在c++工程中也可以根據自己的需求加入“extern”關鍵字讓編譯器當作c風格來編譯,如:
    #### extern "C" int Add(int x,int y);這里編譯器就按照C的風格進行編譯了。
    5.引用(&):引用不是新定義了一個變量而是給以有的變量起了一個別名,與所引用的變量公用一塊內存空間。
    引用作為函數參數和函數的返回值
  • 作為函數返回值時,離開函數作用域后,其棧上空間已經還給系統,因此不能用棧上的空間作為引用類型返回。如果以引用類型返回,返回值的生命周期必須不受函數的限制(即比函數生命周期長)。
  • 引用做參數效率比傳值傳參效率高,因為沒有空間的開辟,但引用在底層上的實現與指針相同,即傳址和引用的效率差不多,但引用比指針用起來更加安全。
  • 傳引用時若不想修改實參則用const修飾的引用
  • const int &&a=10;不是多級引用,叫做右值引用。
    6.內聯函數:以inline修飾的函數叫做內聯函數,編譯時C++編譯器會在調用內聯函數的地方展開,沒有函數壓棧的開銷,內聯函數提升程序運行的效率。
    那么內聯函數和宏函數在功能上時類似的,那為什么還要引入內聯函數呢?在c中使用宏函數時需要對所有變量帶上括號,不然表達式所求結果可能會會與預期有所不同,這樣就增加了代碼的風險性,其二宏是在預處理是進行替換,很不方便調試,沒有類型檢測的過程,而內聯函數則在編譯時進行替換,所以相對宏函數更加安全。
  • 在c++中用const定義的常量替換宏,用內聯函數替換宏函數。
  • 內聯函數是用空間換時間的做法,所以當代碼很長或有遞歸時不建議使用內聯函數,inline關鍵字對于編譯器也只是一個建議,當不適合作為內聯函數時編譯器就會忽略內聯。
  • inline不建議分開定義和聲明,內聯函數時具有文件作用域的。
    7.auto關鍵字(c++11)
    auto修飾的關鍵字編譯器會自動推倒其類型。
  • auto在一行定義多個變量時類型必須相同。
  • auto不能作為函數的參數也不可以定義數組
    auto的第二個用法:基于范圍的for循環
    int arr[]={1,2,3,4,5};
    for(auto & e : arr)
    e*=2;
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亳州市| 双鸭山市| 内乡县| 抚顺市| 安义县| 延津县| 昆山市| 蚌埠市| 塔河县| 克拉玛依市| 张家川| 南丹县| 修水县| 呈贡县| 云霄县| 兰坪| 新邵县| 思南县| 大连市| 镇赉县| 桦南县| 寻乌县| 嘉义县| 漾濞| 凤阳县| 乌兰浩特市| 马关县| 金昌市| 虹口区| 衢州市| 应用必备| 姚安县| 房山区| 宣化县| 抚宁县| 木里| 泾阳县| 浦江县| 大竹县| 渝北区| 祁门县|