C++函数模板和普通函数的调用规则
生活随笔
收集整理的這篇文章主要介紹了
C++函数模板和普通函数的调用规则
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C++函數模板和普通函數的調用規則:
普通函數可以進行自動類型轉換。
函數模板必須嚴格類型匹配。
C++編譯器優先考慮普通函數。
如果函數模板可以產生一個更好的匹配,那么選擇模板。
可以通過空模板實參列表的語法限定編譯器只能通過模板匹配。
代碼如下:
#include <iostream> using namespace std;template<typename T> int myAdd(T a, T b) {cout << "template function" << endl;return a + b; }int myAdd(char a, char b) {cout << "normal function" << endl;return a + b; }void test01() {int a = 10;int b = 20;char c1 = 'a';char c2 = 'b';myAdd(a, c1);myAdd(a, b);myAdd(c1, b);myAdd(a, b);myAdd(c1, c2);myAdd<>(c1, c2); }int main() {test01();return 0; }測試結果:
總結
以上是生活随笔為你收集整理的C++函数模板和普通函数的调用规则的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sketchup2015 插件安装的方法
- 下一篇: C++函数模板机制结论