偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

解析C++老手也會(huì)出現(xiàn)的問(wèn)題

開(kāi)發(fā) 后端
下文講述C++老手也會(huì)遇到的C++問(wèn)題,第一條就是: const原則:在C++中最好趨向與使用const來(lái)修飾它前面的那個(gè)類(lèi)型。

對(duì)于剛剛接觸到C++的用戶來(lái)說(shuō),C++確實(shí)擁有比別的開(kāi)發(fā)語(yǔ)言更復(fù)雜的問(wèn)題, 學(xué)習(xí)C++時(shí)應(yīng)該注意由易至難,循序漸進(jìn),要成為C++老手,不是那么容易的,必須要花很大的努力。

如:const int a;和int const b;中,雖然兩種具有相同的意義,但是最好利用后面的那種情況,后面的更加可讀,因?yàn)椋篿nt const我們可以很清楚地看到const是修飾int,而前面的那種方法中,我們就不那么輕易知道到底const 的具體涵義。由后面的那種方法我們可以知道const指一個(gè)恒定的整形。Int *const b,指的是一個(gè)恒定的指針b,這個(gè)指針指向一個(gè)整型。

所以這個(gè)指針的內(nèi)容可以改變,但是它的指針值也就是b的值不能變,相應(yīng)的int const *b,指的是一個(gè)指向恒定整型內(nèi)容的指針b,也就是說(shuō)這個(gè)b的內(nèi)容可以變,但是開(kāi)始的b所指向的地址中的內(nèi)容不能在程序當(dāng)中通過(guò)b來(lái)改變。volatile對(duì)上面的原則也適用,使用類(lèi)型T做為類(lèi)型變量已經(jīng)作為了模板參數(shù)的慣例,用來(lái)表示函數(shù)或者類(lèi)所接受的類(lèi)型參量可以用所有的類(lèi)型。#t#

C++的模板的類(lèi)型參量前,最好盡量使用typename來(lái)代替class。在編譯時(shí)期,模板被編譯兩次;實(shí)例化之前:檢查模板代碼本身,查看語(yǔ)法是否正確;在實(shí)例化期間,檢查模板代碼,查看是否所有的調(diào)用都有效。

當(dāng)使用函數(shù)模板,并且引發(fā)模板實(shí)例化的時(shí)候,編譯器需要查看模板定義。在函數(shù)實(shí)參的類(lèi)型的推導(dǎo)中,如果類(lèi)型出現(xiàn)不匹配現(xiàn)象則會(huì)出現(xiàn)編譯錯(cuò)誤。如果要解決這編譯錯(cuò)誤則有以下幾種方法解決:對(duì)傳入的實(shí)參進(jìn)行類(lèi)型轉(zhuǎn)換成匹配類(lèi)型后傳入。顯示指定模板函數(shù)的全特化(不能為偏特化,因?yàn)楹瘮?shù)不支持偏特化)類(lèi)型。

例子如下所示:

  1. template < typename T >   
  2. T  & max(T  & value1,T  & value2)  
  3. {   
  4.    return  value1 > value2 ? value1:value2;  
  5. }   
  6.    
  7. 調(diào)用max( 3 , 4.1 )會(huì)出現(xiàn)編譯錯(cuò)誤,解決的辦法:  
  8.  1 .max(static_cast < double > ( 3 ), 4.1 );  
  9.  2 .max < double > ( 3 );  
  10.  3 .將函數(shù)的模板參數(shù)從一個(gè)改為兩個(gè)。 

在模板函數(shù)內(nèi)部不能指定默認(rèn)的模板參數(shù)。函數(shù)不能采用偏特化的方法來(lái)實(shí)現(xiàn)類(lèi)型的遞歸,但是它可以利用函數(shù)重載的方法來(lái)實(shí)現(xiàn)類(lèi)型的轉(zhuǎn)換。相對(duì)于8而言類(lèi)能使用偏特化的方法來(lái)實(shí)現(xiàn)類(lèi)型的遞歸。

并且它的仿函數(shù)也可以使用重載operator()來(lái)實(shí)現(xiàn)函數(shù)重載方法。但是它的一個(gè)問(wèn)題就是在調(diào)用仿函數(shù)的時(shí)候一定要加上它的實(shí)例化參數(shù)類(lèi)型,以及調(diào)用它的構(gòu)造函數(shù)。函數(shù)調(diào)用的時(shí)候可以采用由參數(shù)的類(lèi)型來(lái)反推函數(shù)的模板參數(shù),這是仿函數(shù)所不能的。所以我們?cè)诰幊痰倪^(guò)程當(dāng)中一定要注意這些不同技術(shù)之間的優(yōu)點(diǎn)和不足,看看哪些更適合我們。

在調(diào)用非標(biāo)準(zhǔn)函數(shù)的時(shí)候最好要與調(diào)用標(biāo)準(zhǔn)函數(shù)區(qū)分開(kāi)來(lái),這樣不致于使用程序產(chǎn)生歧義的錯(cuò)誤。做法是:在變量或者函數(shù)的前面加上全局標(biāo)識(shí)符。

責(zé)任編輯:chenqingxiang 來(lái)源: NET130
相關(guān)推薦

2010-01-28 13:15:43

C++參數(shù)

2010-01-26 10:13:45

學(xué)習(xí)C++

2009-08-20 15:54:48

從C#到C++

2020-06-14 08:55:24

網(wǎng)絡(luò)安全信息泄露網(wǎng)絡(luò)釣魚(yú)

2011-04-11 09:43:25

C++C

2014-11-26 10:23:09

2010-01-21 17:30:12

C++復(fù)雜

2010-01-25 18:24:11

C++

2010-01-15 17:38:37

C++語(yǔ)言

2022-10-28 19:00:00

Python

2010-06-04 16:12:39

MYSQL_ASSOC

2022-05-05 08:00:00

團(tuán)隊(duì)敏捷流程

2012-08-07 09:37:23

虛擬化

2022-06-13 10:07:13

物聯(lián)網(wǎng)開(kāi)發(fā)物聯(lián)網(wǎng)

2010-04-15 13:36:48

Oracle恢復(fù)

2012-08-03 08:57:37

C++

2023-09-17 22:50:23

C++編程

2011-04-21 15:04:30

C#

2022-05-06 17:33:10

元宇宙現(xiàn)實(shí)問(wèn)題沉迷風(fēng)險(xiǎn)

2010-01-27 10:29:39

C++代碼解析
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)