C++使用模板的注意事项

两点注意事项

  1. 自动推导类型,必须推导出一致的数据类型T,才可以使用
  2. 模板必须要确定出T的数据类型,才可以使用
cpp 复制代码
#include<iostream>
using namespace std;

//第一点必须一致的数据类型
template <class T>
void myswap(T& a, T &b)
{
	T temp = a;
	a = b;
	b = temp;
}


void test01()
{
	int a = 10;
	int b = 20;
	char c = 'c';

	myswap(a, b);
	//myswap(a, c); //必须一致的数据类型
}


//第二点 必须确定T的数据类型
template <class T>

void func()
{
	cout << "func调用" << endl;
}



void test02()
{
	//func();  //错误,模板不能独立使用,必须确定T的类型
	func<int>();  //利用显示知指定的方式,给T一个类型,才可以使用该模板
}


int main()
{
	test01();
	test02();
	return 0;
}
相关推荐
a187927218316 小时前
【算法】动态规划第三篇:背包第一课——贪心之死与正序倒序开关
算法·leetcode·动态规划·贪心·dp·暴力·算法讲解
hope_wisdom6 小时前
C/C++数据结构之二叉树的遍历
c语言·数据结构·c++·二叉树·深度优先·广度优先
黄金龙PLUS6 小时前
Xoodoo置换算法的优缺点
算法·网络安全·密码学·哈希算法·同态加密
LayZhangStrive6 小时前
数据结构与算法 - 堆排序
java·数据结构·算法·排序算法·堆排序·大根堆
cpp_learner7 小时前
C++ 实现责任链模式(Chain of Responsibility):从一堆 if-else 到可插拔的处理管道
c++·设计模式
residual_fan7 小时前
深度渐进收缩学习(DPSL):面向强噪声与类内分散的机械复合故障诊断方法
人工智能·算法·数据挖掘·数据分析
一木 之林7 小时前
五、C++ 新特性、关键字与编译原理(进阶)(一)
c语言·开发语言·c++
2601_962298277 小时前
交易开拓者通常使用什么编程语言?这种语言如何帮助自动化交易?
java·c++·python·编程语言·自动化交易
码匠许师傅7 小时前
【设计模式精讲】23.备忘录模式(Memento)
c++·设计模式·软件工程·uml·备忘录模式
leikooo7 小时前
ARTS 0906: 辅助栈记录每层最小值、OSI 模型从未真正落地与与其被动等待被颠覆不如主动设计规则
数据结构·人工智能·tcp/ip