首先,咱們在C++的環境(vs2013)下寫一段「hello world」的代碼。ios
#include<iostream>
using namespace std;ide
int main()
{
cout << "hello bit" << endl;
return 0;
}函數
咱們來解釋一下spa
1、instream 是頭文件,表示輸入輸出流。code
2、其次,using namespace std;
namespace是一個關鍵字,它的做用是:使用命名空間來對標識符的名稱進行本地化處理,避免命名衝突。(說人話:namespace建造了一個空間,這裏面標識符的名字能夠和其餘變量名同樣)ci
因此,此時,咱們使用的是std(C++標準庫)這個空間中名字(即後面用到的cout)。作用域
//C++庫裏面的東西都放在std這個命名空間中it
3、具體來講一下,命名空間的概念。io
一、定義命名空間,須要使用到namespace關鍵字,後面跟命名空間的名字,而後接一對{}便可,{}中即爲命名
空間的成員。編譯
舉例:
(1)普通的命名空間,
namespce L1
{
int a;
int Add(int x,int y)
{
return x+y;
}
}
(2)嵌套的命名空間
相似於
namespace L1
{
....
....
....
namespace L2
{
...
...
...
}
}
(3)在同一工程中,C++是容許存在多個相同的命名空間的,在編譯時會合成到一個命名空間中。
這個相似於合併同類項。
好,說完命名空間,
二、咱們接着來談命名空間的使用
(1)首先能夠命名空間名稱加做用域限制符。(注意是倆冒號)
如:printf("%d\n",L1::a);
(2)使用using將命名空間引入。(注意是倆冒號)
如:using L1::a;
int main()
{
printf("%d\n",a);
return 0;
}
(3)使用using namespace命名空間名稱引入
如:using namespace std;
4、C++輸入&輸出
2.相比 printf / scanf ,能夠自動識別類型,控制輸出格式。cin、cout 和scanf、printf哪一個方便用哪一個,能夠混用。
3.C++中支持在一行內連續輸出。
4.endl換行符等價於'\n'。
舉例:cin>>a;
cin>>a>>" ">>b>>c;
cout<<b<<" "<<endl;
5、缺省參數
一、什麼是缺省參數
缺省參數是聲明或定義函數時爲函數的參數指定一個默認值。在調用該函數時,若是沒有指定實參則採用該默認值,不然使用指定的實參。
二、分爲所有缺省參數和半缺省參數
所有缺省,即每一個函數的參數所有都指定了默認值。此時在調用是,若是不指定實參,則用默認值。
半缺省參數必須從右往左一次給出,中間不能有間隔。
缺省參數不能在函數聲明和定義中同時給出。
缺省值必須是常量或者全局變量。
C語言並不支持缺省參數。
6、函數重載
一、什麼是函數重載?
是函數的一種特殊狀況,C++容許在同一做用域中聲明幾個功能相似的同名函數,這些同名函數的形參列表(參數個數 或 類型 或 順序)必須不一樣,經常使用來處理實現功能相似數據類型不一樣的問題。
函數重載不能依靠返回值的不一樣來構成重載,由於調用時沒法根據參數列表肯定調用哪一個重載函數。
二、爲何在C++中會發生函數重載呢?
由於C++重載函數時,只要形參不一樣,經過函數修飾(經過函數修飾規則來區分,只要參數不一樣,修飾出來的名字就不同),達到區別的目的,連接時就不會產生衝突。
而,C語言是直接拿函數名去找,並無函數修飾的過程,連接時就會產生衝突。