C++模板

文章介绍了C++中的模板概念,包括函数模板和类模板的定义方式。函数模板用于定义通用的函数,通过占位符类型在调用时根据实参自动推断。类模板则用于创建可适用于多种类型的类。文中提供了模板函数和模板类的代码实例,强调模板的声明与定义需在同一.cpp文件中,以便编译器能找到相应的定义。
摘要由CSDN通过智能技术生成

目录

一 什么是模板?

二 如何定义模板?


一 什么是模板?

模板是使用占位符把类或函数的参数类型进行统一定义,当实际使用模板时会根据传入的参数对占位符进行逐一替换。

泛型编程的基础,也是开发大型程序必不可少的技术。

二 如何定义模板?

模板函数定义形式:

template <typename type> ret-type func-name(parameter list)

{

   // 函数的主体

}  

type 是函数所使用的数据类型的占位符名称。这个名称可以在函数定义中使用。

类模板一般形式如下所示:

template <class type> class class-name {

.

.

.

}

在这里,type 是占位符类型名称,可以在类被实例化的时候进行指定。您可以使用一个逗号分隔的列表来定义多个泛型数据类型。

模板函数代码实例:

#include <iostream>


using namespace std;

//定义函数模板
template<typename T>
//这部分为函数模板申明的标准格式,其中的T可以随便叫一个其他的合法的名称
inline T sum(T a, T b) { //使用函数模板定义的类型到函数中,当实际调用时会根据实际的参数类型对占位符T进行替换。
    return a + b;
}


int main() {

    int SUM = sum(22, 33);
    cout << SUM << endl;


    return 0;
}



注意:模板的类和函数的申明与定义均放在.cpp文件中,不然找不到定义。

模板类代码实例:

//
// Created by 11010 on 2023/4/9.
//注意:模板的类和函数的申明与定义均放在.cpp文件中,不然找不到定义。
//


template<class T>  //申明这一句之后,后面就可以使用这里的类型了
class templateClass {
public:
    T sum(T a, T b); //定义模板函数: 计算两数之和
    T area(T len,T width); //定义模板函数:计算面积

};


template<class T>
T templateClass<T>::sum(T a, T b) {
    return a+b;
}

template<class T>
T templateClass<T>::area(T len, T width) {
    return len*width;
}

主函数:

//使用模板类
templateClass<double> tc; //指定类型为double
//调用模板类的方法
cout<<"两数之和为:"<<tc.sum(23.56,32)<<endl;
cout<<"面积为:"<<tc.area(55.98,79.898)<<endl;

完整代码clone地址:git@gitcode.net:XiaoWang_csdn/cpp_17_template.git

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值