c++之模板
2017-12-20 18:31
127 查看
模板:
1,函数模板
template <class(typename) T, ...(非类型参数,int var)>
T add(T &a)
{
//函数体
}
非类型参数只能是,整型,指针,引用。以上T可以有对应的默认值
2,类模板
template <class T>
class A
{
//类体
}
template <class T,...>
void A<T>::func()
{
//函数体
}
以上:可以有非类型参数,T可以有默认值。
3,友元函数模板如下。如下包括模板,友元,重载,可以好好理解一下。
1,函数模板
template <class(typename) T, ...(非类型参数,int var)>
T add(T &a)
{
//函数体
}
非类型参数只能是,整型,指针,引用。以上T可以有对应的默认值
2,类模板
template <class T>
class A
{
//类体
}
template <class T,...>
void A<T>::func()
{
//函数体
}
以上:可以有非类型参数,T可以有默认值。
3,友元函数模板如下。如下包括模板,友元,重载,可以好好理解一下。
template <class T = int> class A { public: A(int); template <class M, class N> friend M operator+(A<M> &, A<N> &); private: T p; }; template <class H> A<H>::A(int num) { p = num; } template <class M, class N> M operator+(A<M> &c, A<N> &d) { return (c.p+d.p); } int main(int argc, char *argv[]) { A<char> a(65); A<int> b(3); cout << a+b << endl; return 0; }注意:T,H,M,N都是形参名。
相关文章推荐
- C++模板
- C++基础::变量模板(variable template)
- 单源最短路模板_SPFA_Dijkstra(堆优化)_C++
- 深入探讨vc下C++模板编译模型
- C++ - 模板与泛型编程
- C++模板&二段式名字查找
- C++值传递、引用传递、指针传递以及STL模板堆的使用
- c++远征之模板篇——函数模板、类模板
- Effective C++ Item 46 当需要投你非成员函数定义模板
- C++模板学习
- c++模板实现 linq
- C++模板编程-模板基础重点
- Effective C++ Item 46 需要类型转换时请为模板定义非成员函数
- C++模板编译错误
- C++ 模板基础知识
- C++设计模式之模板方法模式
- C++模板template总结
- C++模板 声明实现分离
- C++利用链表与模板实现栈
- C++模板实现哈夫曼树