对C++泛型编程的理解

1、泛型是什么? 泛型编程是什么?
实质上就是不使用具体数据类型(int、double、float等),而是使用一种通用类型来进行程序设计的方法,泛泛的描述一下数据,这个方法可以大规模的减少程序代码的编写量。
模板函数如下:
其中,T是一个占位符(数据类型占位符),也就是说,将来T这个位置是一个真实的、具体的数据类型。
所以,可以把T这种类型占位符也称为一种数据类型,就叫泛型(generic type)。使用这种类型占位符的编程方式就叫泛型编程
总之,泛型也是一种数据类型,但它是用来代替所有类型的“通用类型”。

template<typename T>
int func(const T &a1, const T &a2)
{
    ...
}
template <class T>
inline int func(const T &a1, const T&a2)
{
    ...
}
tempalte<typename T1, typename T2, typename T3>
T1 func(const T2 &t2, const T3 &t3)
{
    ...
}
//调用方法
func<long>(i, log);

2、常用的泛型例子有什么?
STL容器、迭代器、算法都是泛型编程的例子,(多态也是一种泛型编程,因为通父类对象可以调用其不同的子类,在函数传递时只需要将接口声明为父类,即可传递其不同的子类达到多态的效果)。

3、泛型有什么形式实现的?
通常两种形式:函数模板和类模板。
函数模板:针对仅参数类型不同的函数;
类模板:针对仅数据成员和成员函数类型不同的类;

4、什么是模板?
使用了泛型的代码称为模板,由模板生成实际代码的过程称为模板的具体实现。

5、为什么有模板?
目的就是编写一些与类型无关的代码。

6、函数重载:函数名相同,参数类型不同,参数个数不同,参数顺序不同。
比模板代码要多。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值