概念
泛型编程——模板
种类:
函数模板和类模板
如何定义,以及如何调用?
//函数模板
template<class T>
void Swap(T&a, T&b){}
//类模板
template<class T>
class Date
{
private:
T* a;
int size;
int captive
};
//调用
int main()
{
int x1,x2;
double x3, x4;
Swap(x1,x2);
Swap(x3, x4);
Date<int> a;
}
编译器怎么调用?
编译器根据用户写的模板,先将其实例化,就是帮我们写了我们偷懒不写的函数,或者类,然后再具体调用
总结c++解决了c的哪些问题?
1、private访问限定符具有安全性
2、new开辟空间有异常处理
3、泛型模板
访问私有变量通过其内部的函数去访问
引用传参、引用传返回值的好处:
1、传参时,省去了一次拷贝构造;
2、引用返回值,省去了一次拷贝构造;
在传参和返回时,会产生一个临时变量,会发生拷贝构
显示实例化和隐式实例化
显示就是直接强转成给的类型
隐式就是给编译器值,它自己推导的,但是给过去的T得是同一种类型