C++模板
来源:互联网 发布:ubuntu snmp v3配置 编辑:程序博客网 时间:2024/05/20 21:22
template<class C>
String<C>::String()
{
}
template<class C>
String<C>::String<C>()
{
}
以上两种定义都可以
类模板的名字不能重载,例如
template<class T>
class String
{
};
class String //错误,重复定义
{
};
模板可以有类型参数,可以有常规类型的参数如int,还可以有模板参数。自然,一个模板可以有多个参数。例如
template<class T, T def_val>
class Cont
{
};
整数参数常常被用于提供大小或者界限,例如
template<class T, int i>
class Buffer
{
T v[i];
int sz;
public:
Buffer() : sz(i) {}
};
整数模板参数必须是常量。
void f(int i)
{
buffer<int, i> bx; //错误,需要常量表达式
}
模板支持默认参数,例如
template<class T, class C = int>
void fun(T a, C b)
{
}
template<class T> class Vector; //一般情况
template<class T> class Vector<T*>; //对任何指针的特化
template<> class Vector<void*>; //对void*的特化
虚函数提供的东西称为运行时多态;模板提供的东西称为编译时多态
//out.h
template<class T> void out(const T& t);
//out.c
#include <iostream>
#include "out.h"
export template<class T> void out(const T& t){std::cout << t;}
一定要加关键字export,如果没有这样做,在任何地方要使用模板,都将要求它的定义必须位于作用域中
- C++-模板
- C++-模板
- C++:模板
- C++:模板
- C++:模板
- 模板 (C++)
- C ++ 模板
- C ++ 模板
- 【C++】模板
- c++----------模板
- C++--------------------------------------------模板
- c++--模板
- C++:模板
- 【基础C&C++】模板
- 【c/c++】类模板
- 【C/C++】模板类
- 【c++】模板和模板类
- C/C++:函数模板与类模板
- 深入理解include预编译原理
- linux上printf出带颜色字体 2
- js中如何保留两位小数(四舍五入)
- Java多线程-工具篇-BlockingQueue
- 安装Adroid SDK时出现找不到Java SDK的错误
- C++模板
- 冒泡排序算法(C语言)
- 什么是XHTML?与HTML相比XHTML有什么特点?
- 快速排序算法(C语言)
- 矩形嵌套问题
- 堆排序算法(C语言)
- python之raw_input和put之区别
- CPPUnit 测试宏
- Spring配置多个XML配置文件