2017.2.18
1.函數包裝器
1.設計通用的函數執行接口,可以設置計數(函數執行次數)和關卡
2.函數包裝器依賴于函數模板,實現通用泛型
3.函數代碼可以內嵌在函數中
最基本模板:
1 //函數包裝器, T數據類型, F是函數 2 template<typename T,typename F> 3 T run(T v, F f) 4 { 5 static int count = 0; 6 count++;//計數器 7 std::cout << "run 一個參數的包裝器 執行" << count << "次" << std::endl; 8 if (count > 1) 9 { 10 T vx(0); 11 return vx; 12 } 13 return f(v);//函數傳入參數 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函數指針 35 }2.函數模板的覆蓋
?
?
3.類型轉換
static_cast<需要轉換的數據類型>(要轉換的數據)?????? 相當于c中的強制轉換,可以用于基礎類型,在編譯期進行
const_cast<需要轉換的數據類型>(要轉換的數據)?????????? 去const,但是const并沒有被改變
reinterpret_cast<需要轉換的數據類型>(要轉換的數據)??
dynamic_cast_cast<需要轉換的數據類型>(要轉換的數據)? 只接受基于類對象的指針和引用的類型轉換
4.
轉載于:https://www.cnblogs.com/acliang/p/6413617.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
- 上一篇: Angular\Vue解决页面数据加载时
- 下一篇: oracle case when及dec