用字串常量做函式模板的引數

2021-06-28 20:58:27 字數 453 閱讀 5061

#include#includeusing namespace std;

//引數以引用傳值

templatevoid ref(t const & x)

當我們這樣呼叫:

com("abcd","efg");
會出現錯誤。出錯的原因是字串常量的長度決定了它們的型別。第乙個引數即"abcd"的型別為:char const [5];

第二個引數即"efg"的型別為:char const[4],它們的型別不相同。

改變com函式引數傳遞方式,即以非引用方式傳值,如下:

templatevoid com(t x,t y)

呼叫:

com("abcd","efg");
不會出錯。

C C 程式設計 使用字串作為函式模板的實參

解決方法是宣告為非引用引數 對於非引用型別的引數,在實參演繹的過程中,會出現陣列到指標的型別轉換 這種轉型被稱為decay include include 引用傳參 template typename t inline t const maxref t const a,t const b 非引用傳參...

使用字串程式設計的模板

對函式引數判斷 乙個函式的引數判斷是應該最先考慮的,一般判斷下面的條件。if chars null return 0 if chars 0 0 return 1 字串雙指標的模板 很多時候我們會用雙指標從兩邊遍歷字串,下面就是簡單的模板 bool ispalindrome char s return...

常用字串函式

memset 原型 extern void memset void buffer,int c,int count 用法 include 功能 把buffer所指記憶體區域的前count個位元組設定成字元c。說明 返回指向buffer的指標。舉例 memset.c include include ma...