C++ Primer笔记 模板
template <typename T>
T compare(const T & v1,const T &v2)
{
return ..
}
编译器承担了为每种类型编写函数的单调工作.
inline
template<typename T> inline T min(const T&,const T&)
2 类模板
template<class T>
class Q{
T fun();
}
3. 形参屏蔽外部变量
模板形参不能在内部重新定义
模板的声明和定义名字可以不相同
4
template <clas Parm,class U>
Parm fcn(Parm& array,U value)
{
typename Parm::size_type *p;//不知道size_type是否为类型的时候最好加上typename
}
5 非类型模板形参
template<class T,size_t N>
void array(T (&parm)[N]){}
调用:
int x[42];
array_init(x);// = array_init(int (&)[42]);
6 形参为引用时,数组不能转换为指针
7 显示指定实参
template<class T1,class T2, classs T3>
T3 func(T2,T1)
long func<long ,int ,long >(int,long);
8 类外定义模板
template <class Type> void Queue<Type>::destroy(){}
9 类模板中的友元函数声明
template<class Type> class Bar{
template<class T> friend class FooBar;
template<class T> friend void fun();
}
10 模板static 不同类型 不同的copy内存
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。