C++入門第一課(命名空間;輸入輸出;缺省參數;函數重載)

首先,咱們在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++輸入&輸出

  1. 使用cout標準輸出(控制檯)和cin標準輸入(鍵盤)時,必須包含< iostream >頭文件以及std標準命名空間。

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語言是直接拿函數名去找,並無函數修飾的過程,連接時就會產生衝突。

相關文章
相關標籤/搜索