C++: 泛型编程

模板

模板函数

模板的基本使用规则如下:

template<typename T>
void m_swap(T &num1, T &num2){
    
    
    T temp = num1;
    num1 = num2;
    num2 = temp;
}

int main(int argc, char const *argv[])
{
    
    
    int num1 = 10;
    int num2 = 20;
    //自动类型推导调用
    m_swap(num1, num2);
    cout << num1 << endl;
    cout << num2 << endl;

    double num3 = 10.0;
    double num4 = 7.6;
    //显示指定类型调用
    m_swap<double>(num3, num4);
    cout << num3 << endl;
    cout << num4 << endl;

    return 0;
}

注意:使用模板时必须确定出通用数据类型T,并且能够推导出一致的类型。

普通函数和模板函数的调用规则

  • 如果模板函数和普通函数都有实现,则优先调用普通函数
  • 可以通过空模板参数列表来强制调用函数模板
  • 函数模板可以发生重载
  • 如果模板函数可以产生更好的匹配,则优先调用模板函数

模板类

模板类的基本使用方法如下:

template<typename nameType, typename ageType>
class Student {
    
    
    public:
        nameType name;
        ageType age;
    
    public:
        Student(nameType name, ageType age) {
    
    
            this->name = name;
            this->age = age;
        }

        void ShowName(){
    
    
            cout << this->name << endl;
        }
};

int main(int argc, char const *argv[]) {
    
    
    Student<string, int> stu("xiaoming", 18);
    stu.ShowName();

    system("pause");
    return 0;
}

参考资料

猜你喜欢

转载自blog.csdn.net/xuyangcao123/article/details/124823360