c++之普通函數和模板函數的調用規則


1.如果模板函數和普通函數都可以實現,則優先調用普通函數。

2.可以通過空模板參數列表來強制調用模板函數;

3.函數模板也可以重載;

4.如果函數模板可以產生更好的匹配,優先調用函數模板;

#include<iostream>
using namespace std;

int myAdd(int a, int b) {
    cout << "調用普通函數" << endl;
    return a + b;
}
template<class T>
T myAdd(T a, T b) {
    cout << "調用函數模板" << endl;
    return a + b;
}
template<class T>
T myAdd(T a, T b,T c) {
    cout << "調用重載函數模板" << endl;
    return a + b;
}
void test() {
    int a = 10;
    int b = 20;
    //1這里調用普通函數
    cout << myAdd(a, b) << endl;
    //2這里調用函數模板
    cout << myAdd<>(a, b) << endl;
    //3這里調用重載函數模板
    cout << myAdd(a, b, 100) << endl;
    //4這里調用函數模板
    cout << myAdd('a', 'b') << endl;
}

int main() {
    test();
    system("pause");
    return 0;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM