當(dāng)前位置:
首頁 >
2017.2.18
發(fā)布時(shí)間:2025/7/14
36
豆豆
1.函數(shù)包裝器
1.設(shè)計(jì)通用的函數(shù)執(zhí)行接口,可以設(shè)置計(jì)數(shù)(函數(shù)執(zhí)行次數(shù))和關(guān)卡
2.函數(shù)包裝器依賴于函數(shù)模板,實(shí)現(xiàn)通用泛型
3.函數(shù)代碼可以內(nèi)嵌在函數(shù)中
最基本模板:
1 //函數(shù)包裝器, T數(shù)據(jù)類型, F是函數(shù) 2 template<typename T,typename F> 3 T run(T v, F f) 4 { 5 static int count = 0; 6 count++;//計(jì)數(shù)器 7 std::cout << "run 一個(gè)參數(shù)的包裝器 執(zhí)行" << count << "次" << std::endl; 8 if (count > 1) 9 { 10 T vx(0); 11 return vx; 12 } 13 return f(v);//函數(shù)傳入?yún)?shù) 14 } 15 int cheng(int a, int b) 16 { 17 return a*b; 18 } 19 20 int main() 21 { 22 function<double(double)> fun1 = [](double u) 23 { 24 return u * 2; 25 }; 26 function<double(double)> fun2 = [](double u) 27 { 28 return u*u; 29 }; 30 function<int(int, int)> fun3 = [](int u1,int u2) 31 { 32 return u1 + u2; 33 }; 34 function<int(int, int)> fun4 = cheng; //fun4函數(shù)指針 35 }2.函數(shù)模板的覆蓋
?
?
3.類型轉(zhuǎn)換
static_cast<需要轉(zhuǎn)換的數(shù)據(jù)類型>(要轉(zhuǎn)換的數(shù)據(jù))?????? 相當(dāng)于c中的強(qiáng)制轉(zhuǎn)換,可以用于基礎(chǔ)類型,在編譯期進(jìn)行
const_cast<需要轉(zhuǎn)換的數(shù)據(jù)類型>(要轉(zhuǎn)換的數(shù)據(jù))?????????? 去const,但是const并沒有被改變
reinterpret_cast<需要轉(zhuǎn)換的數(shù)據(jù)類型>(要轉(zhuǎn)換的數(shù)據(jù))??
dynamic_cast_cast<需要轉(zhuǎn)換的數(shù)據(jù)類型>(要轉(zhuǎn)換的數(shù)據(jù))? 只接受基于類對象的指針和引用的類型轉(zhuǎn)換
4.
轉(zhuǎn)載于:https://www.cnblogs.com/acliang/p/6413617.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
- 上一篇: Angular\Vue解决页面数据加载时
- 下一篇: oracle case when及dec