日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

对c++primer 16.6.1的第4小节的代码说明

發(fā)布時(shí)間:2023/12/1 c/c++ 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 对c++primer 16.6.1的第4小节的代码说明 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這段代碼是這樣的:

template<typename T>
int compare(const T& t1,const T& t2)
{
cout<<"范型"<<endl;
return 1;
}

int main()
{
  cout<<compare("hello","world")<<endl;
}


template<>

int compare<const char*>(const char* const &t1,const char* const &t2)

{
cout<<"特化"<<endl;
return 2;
}

我們可以把compare對(duì)const char*的特化版本放在main之前,然后看到它仍然是去重新實(shí)例話一個(gè)函數(shù),而不是使用特化的函數(shù),這是因?yàn)閏ompare的函數(shù)參數(shù)是引用類型,而我們調(diào)用compare時(shí)是這樣的,compare("hello","world"),那么當(dāng)參數(shù)是引用時(shí),常量字符串就不會(huì)主動(dòng)轉(zhuǎn)變成const char*指針,如果我們把compare的參數(shù)改為非引用類型的,那么compare("hello","world")就會(huì)調(diào)用特化版本,反之,"hello"和"world"調(diào)用范型函數(shù)時(shí)確定的類型是 const char *(&)[6],和下面的是同理

void print(const char* &p)

{

}

?

void print(const char* p)

{

}

假如上面2個(gè)函數(shù)都是合理的,當(dāng)print("aaaa")時(shí)會(huì)調(diào)用哪個(gè)函數(shù)?從上面我們能得出,應(yīng)該調(diào)用函數(shù)形參是非const的,因?yàn)檫@時(shí)是傳值;如果只有第1個(gè)函數(shù)而我們print("aaa"),那么就會(huì)因?yàn)檎也坏綄?duì)應(yīng)的print函數(shù)而編譯不通過(guò)

轉(zhuǎn)載于:https://www.cnblogs.com/buxianghe/archive/2013/04/17/3026680.html

總結(jié)

以上是生活随笔為你收集整理的对c++primer 16.6.1的第4小节的代码说明的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。