新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
c++入門之基本概念
c++由c語言衍生而來,最大的特點就是它是一門面向對象的語言,面向過程(c)即需要我們去按照步驟去一步一步寫代碼,而c++提供的面向對象機制幫助我們更有效更方便的開發(fā)。
1.關鍵字:根據(jù)版本的不同關鍵字的個數(shù)有所不同,c中有我們熟悉的32個關鍵字,而在c++98這個版本中有63個關鍵字,很多都是和c中關鍵字類似,以后遇到會細說
2.命名空間
概念:使用namespace關鍵字對標識符的名字本地化,以避免命名沖突或名字污染
創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,先為回民等服務建站,回民等地企業(yè),進行企業(yè)商務咨詢服務。為回民企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。
命中空間的定義方式:namespace N1,命名空間是可以嵌套且可以有相同名稱的命名空間出現(xiàn),編譯器在編譯時會將其合并為一個命名空間,而在命名空間中定義的變量作用域只限于這個命名空間。
命名空間的三種使用方式:N1::a、using N1::b、using namespace N1;
3.缺省參數(shù):缺省參數(shù)就是在定義或聲明函數(shù)時為函數(shù)的參數(shù)指定一個默認值,若沒有傳遞實參則用默認值。
分類:全缺省參數(shù)(每個參數(shù)都有默認值),半缺省參數(shù)
- 注意:在半缺省參數(shù)定義時必須從右向左賦值,這種情況下傳遞的實參優(yōu)先匹配最左邊的缺省參數(shù)。
- 缺省參數(shù)不能在函數(shù)定義和聲明中同時定義,最好在聲明。
4.重載函數(shù):在同一作用域中定義幾個功能類似的函數(shù),其參數(shù)列表(參數(shù)個數(shù),參數(shù)類型,參數(shù)順序)必須不同才能構成重載函數(shù)。
在這里就要說一下為什么在c++中可以構成函數(shù)重載而在c語言中不行了,c中編譯器對函數(shù)的命名是在函數(shù)名前加,c++根據(jù)編譯器的不同有不同的命名規(guī)則,但相同點是都對函數(shù)的參數(shù)列表在命名時進行了修飾,當然,在c++工程中也可以根據(jù)自己的需求加入“extern”關鍵字讓編譯器當作c風格來編譯,如:#### extern "C" int Add(int x,int y);
這里編譯器就按照C的風格進行編譯了。
5.引用(&):引用不是新定義了一個變量而是給以有的變量起了一個別名,與所引用的變量公用一塊內存空間。
引用作為函數(shù)參數(shù)和函數(shù)的返回值 - 作為函數(shù)返回值時,離開函數(shù)作用域后,其棧上空間已經(jīng)還給系統(tǒng),因此不能用棧上的空間作為引用類型返回。如果以引用類型返回,返回值的生命周期必須不受函數(shù)的限制(即比函數(shù)生命周期長)。
- 引用做參數(shù)效率比傳值傳參效率高,因為沒有空間的開辟,但引用在底層上的實現(xiàn)與指針相同,即傳址和引用的效率差不多,但引用比指針用起來更加安全。
- 傳引用時若不想修改實參則用const修飾的引用
- const int &&a=10;不是多級引用,叫做右值引用。
6.內聯(lián)函數(shù):以inline修飾的函數(shù)叫做內聯(lián)函數(shù),編譯時C++編譯器會在調用內聯(lián)函數(shù)的地方展開,沒有函數(shù)壓棧的開銷,內聯(lián)函數(shù)提升程序運行的效率。
那么內聯(lián)函數(shù)和宏函數(shù)在功能上時類似的,那為什么還要引入內聯(lián)函數(shù)呢?在c中使用宏函數(shù)時需要對所有變量帶上括號,不然表達式所求結果可能會會與預期有所不同,這樣就增加了代碼的風險性,其二宏是在預處理是進行替換,很不方便調試,沒有類型檢測的過程,而內聯(lián)函數(shù)則在編譯時進行替換,所以相對宏函數(shù)更加安全。 - 在c++中用const定義的常量替換宏,用內聯(lián)函數(shù)替換宏函數(shù)。
- 內聯(lián)函數(shù)是用空間換時間的做法,所以當代碼很長或有遞歸時不建議使用內聯(lián)函數(shù),inline關鍵字對于編譯器也只是一個建議,當不適合作為內聯(lián)函數(shù)時編譯器就會忽略內聯(lián)。
- inline不建議分開定義和聲明,內聯(lián)函數(shù)時具有文件作用域的。
7.auto關鍵字(c++11)
auto修飾的關鍵字編譯器會自動推倒其類型。 - auto在一行定義多個變量時類型必須相同。
- auto不能作為函數(shù)的參數(shù)也不可以定義數(shù)組
auto的第二個用法:基于范圍的for循環(huán)int arr[]={1,2,3,4,5}; for(auto & e : arr) e*=2;
分享題目:c++入門之基本概念
當前URL:http://fisionsoft.com.cn/article/ighjii.html