您当前的位置: 首页 >  c++

韩曙亮

暂无认证

  • 1浏览

    0关注

    1068博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【C++ 语言】面向对象 ( 模板编程 | 函数模板 | 类模板 )

韩曙亮 发布时间:2019-08-17 19:46:09 ,浏览量:1

文章目录
        • 函数模板
        • 类模板
        • 代码示例

函数模板

1. 模板编程 : 类似于 Java 中的泛型编程 ;

  • ① 函数模板 : 对应着 Java 中的泛型方法 ;
  • ② 类模板 : 对应 Java 中的泛型类 ;

2. Java 中的泛型方法 :

void  fun( T t ){
}

3. C++ 中的模板方法 :

//函数模板 , 对应 Java 泛型方法
//	其中 typename 也可以写成 class
template 
T add(T a, T b) {
	return a + b;
}

4. 函数模板作用 : 避免反复定义重载函数 , 例如两个数字相加时 , 需要考虑 int 类型数字相加 , float 类型数字相加 等 , 这些函数的内部行为都是一致的 , 如果使用了模板函数 , 就可以只写一个模板方法即可 ;

5. 对应的函数重载 : 上述函数模板与下面的函数重载实现的功能部分一致 ;

int add(int a, int b) {
	return a + b;
}
float add(float a, float b) {
	return a + b;
}
double add(double a, double b) {
	return a + b;
}

模板函数功能要比重载多很多 , 上面有很多类型没有列出 ;

6. 代码示例 :

  • ① 模板函数定义 :
//函数模板 , 对应 Java 泛型方法
//	其中 typename 也可以写成 class
template 
T add(T a, T b) {
	return a + b;
}
  • ② 模板函数调用代码示例 :
	//调用模板函数 , 传入两个 int 类型参数
	int number_int = add(8, 8);
	cout             
关注
打赏
1663594092
查看更多评论
0.0448s