注意区分模板名和类名或者函数名

对于函数模板:

template<typename T>
bool com(T a, T b)
{
	return a > b;
}
int main()
{
	com(10,100);
	com<float>(1.2, 9.0);
	return 0;
}

以上出现com的地方全部都是模板名

而当模板实例化以后,编译器为我们产生的对应类型的函数com才能称得上是函数名

对于类模板:

template<typename T = int>
class Node
{
public:
	Node(T data = T()):_data(data),_pnext(Null){}
	~Node<T>(){}
private:
	T _data;
	Node<T>*_pnext;
};
同样的,此时Node还是一个模板名,只有在被实例化以后才能是一个类或者类型
所以,我们希望使用一个类名而不是模板名的地方,一定要给模板名后面加上尖括号,
如Node<int> 这才表示是一个类名称,或者是一种类型

int main()
{
	Node<int> p;
	Node<> p2;
	Node p3;// 错误,这是个模板名字,而不是类名
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 异常处理是指在程序运行时出现错误或异常情况时,对这些错误或异常进行识别、报告和处理的过程。它可以帮助程序员更好地控制程序的执行,并且可以提高程序的可靠性。一般的异常处理过程包括: - 异常抛出:当程序出现错误或异常情况时,通过抛出异常对象来表示这个异常。 - 异常捕获:程序员编写异常处理代码来捕获这些异常对象,并且进行相应的处理。 - 异常处理:对捕获的异常进行处理,比如输出错误信息、记录日志、重新抛出异常等。 2. 函数模板函数重载都是C++中实现函数多态性的方式,但是它们的实现机制不同。函数模板是通过一种通用的方式定义函数,可以用于多种不同的数据类型;而函数重载是通过定义多个具有相同称但参数列表不同的函数来实现。 3. 函数模板的一般形式如下: ```c++ template<typename T> 函数返回类型 函数(参数列表) { // 函数体 } ``` 类模板的一般形式如下: ```c++ template<typename T> class 类名 { public: // 成员函数和成员变量 private: // 成员变量 }; ``` 4. 模板是一种C++语言特性,可以让程序员编写通用的代码,以便在不同的数据类型上进行操作。引入模板的概念可以提高程序的可重用性,可以减少代码的重复编写,同时可以使程序更加灵活和可扩展。模板分为函数模板和类模板两种形式,可以用于定义通用的函数和类。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值