比較簡單的我就直接寫在這篇裡了,比較複雜的會單獨寫一篇部落格。
c舊風格
以.h結尾,如math.h,由於c++相容c,所以c/c++均可使用。
c++舊風格
以.h結尾,如iostream.h,此時無名字空間等特性。
c新風格
字首加上c,無.h的副檔名,如math.h改為了cmath,增加了新特性,可以使用不是c的特性,如namespace std。
c++新風格
如iostream,增加了使用名字空間(namespace std)的特性。
namespace 即「命名空間」,也稱「命名空間」 、」名字空間」。c++ 使用命名空間的原因主要是,人類可用的單詞數太少,並且不同的人寫的程式不可能所有的變數都沒有重名現象,為了解決變數重名,於是引入命名空間來區分,將變數限制在不同的域內。
詳細介紹:
c++ 引入函式預設引數,即預設引數,極大地提高了使用函式的靈活性,
我們來舉乙個簡單的例子:
#include
using
namespace
std;
int test(int x = 3, int y = 5)
int main(int argc, const
char * argv)
輸出結果:
傳兩個引數:3很容易看出,當我們傳兩個引數時,形參 x 變成了 a 的值(1),形參 y 變成了 b 的值(2),所以輸出結果為 3 ;當我們傳乙個引數時,形參 x 變成了 a 的值(1),形參 y 是我們指定了的 5 ,所以輸出結果為 6 ;當我們不傳引數時,形參 x 使我們指定的值 3 ,形參 y 是我們指定了的 5 ,所以輸出結果為 8 。傳乙個引數:6
不傳引數:8
這就是所謂的預設引數,就是在宣告函式的某個引數時,給他指定乙個預設值,當你傳引數了,這個引數會是你傳的值;當你未傳參,這個引數就是指定的值。
預設引數分為兩類:
全預設引數
半預設引數
全預設引數就是我們上面所舉的例子:
int test(int x = 3, int y = 5);
也就是說,我們給所有的引數都指定了值,而使用者可以選擇 傳所有引數、或部分引數、或完全不傳參。
注意:若您選擇傳部分引數,您只能從最後乙個引數開始進行省略;也就是說,您要省略乙個引數,那麼必須省略它後面所有的引數。正如上面的例子,您若要選擇省略傳參 a ,那麼 b 也無法傳入,否則,您單傳乙個引數,那麼這個引數必定是 a 的形參。
說完全預設引數,那麼半預設引數呢?
int test(int x, int y, int z = 1);
像上面這種寫法,便是半預設引數,即我們只指定了部分引數的值。但是這種指定方式也是有講究的,指定的必須是右邊的引數。其實想想也很簡單了,我們省略引數是從右邊開始省略,那麼必定是右邊的先開始指定。
在使用的時候,我們也可以採取將預設引數寫在宣告中,而函式定義與沒有預設引數時一樣,如下:
當我們要經常使用某個值,而其他值只是偶爾使用,這樣,我們將經常使用的值作為預設的引數,將會有很大幫助。但這並非是程式設計上的重大突破,只是會帶來很多便利。通過使用預設引數,可以減少要定義的析構函式、方法以及方法過載的數量。
持續更新…
零碎知識點
1.反斜槓也可拼接字串 window.nl ad function window.nl ad function 2.在console.log 中新增樣式 var a hello console.log c a,font size 400 background blue color white 3 通...
零碎知識點
比較數值時,不要integer,要int 1,elasticsearch查詢時不識別大寫,應全部轉為小寫.因此建立索引時盡量使用小寫 2.var param param.yanan1 yanan2 此處的用法 param 宣告了json格式的param,param.yanan1 yanan2定義了j...
C 零碎知識點總結
c 物件導向的三大特徵 1.封裝性 將客觀事物抽象成類,每個類對自身的資料和方法實行 protection private,protected,public 2.繼承性 廣義的繼承有三種實現形式 實現繼承 使用基類的屬性和方法而無需額外編碼的能力 可視繼承 子窗體使用父窗體的外觀和實現 介面繼承 僅...