“模板”学习笔记(8)-----具有多个参数的模板
2011-08-15 16:27
363 查看
一个模板中可以具有多个参数,即可以在一个模板中声明多个自定义的类型,如下面这句话:
而我们就可以利用这两个参数声明一个具有2种类型的成员。下面我用一个程序说下演示一下这个问题:
在上面的程序中,我在主函数中将两个类型T1和T2分别设置成了int型和string类型。这样一来,我们在程序的第15行和16行定义的整型变量和string型变量就可以在17行和18行被输出,结果如下:
另外一个需要注意的问题,我们也可以为模板参数提供默认的类型,比如说:
这样一来,我们就把T2参数默认设置成了string类型。那么在上面主程序中,我们把14行换成:
这样还是相当于:
整个程序示例如下:
输出与上面一模一样,这里我就不把它粘上来了,^_^
template<class T1,class T2>
而我们就可以利用这两个参数声明一个具有2种类型的成员。下面我用一个程序说下演示一下这个问题:
#include <iostream>
#include <string>
using namespace std;
template<class T1,class T2>class show
{
public:
void show1(T1 &a){cout<<"show1:"<<a<<endl;}
void show2(T2 &a){cout<<"show2:"<<a<<endl;}
};
int main()
{
show<int,string> a;
int temp1=5;
string temp2="Hello,C++!";
a.show1(temp1);
a.show2(temp2);
return 0;
}
在上面的程序中,我在主函数中将两个类型T1和T2分别设置成了int型和string类型。这样一来,我们在程序的第15行和16行定义的整型变量和string型变量就可以在17行和18行被输出,结果如下:
另外一个需要注意的问题,我们也可以为模板参数提供默认的类型,比如说:
template<class T1,class T2=string>
这样一来,我们就把T2参数默认设置成了string类型。那么在上面主程序中,我们把14行换成:
show<int> a;
这样还是相当于:
show<int ,string> a;
整个程序示例如下:
#include <iostream>
#include <string>
using namespace std;
template<class T1,class T2=string>class show
{
public:
void show1(T1 &a){cout<<"show1:"<<a<<endl;}
void show2(T2 &a){cout<<"show2:"<<a<<endl;}
};
int main()
{
show<int> a;int temp1=5;
string temp2="Hello,C++!";
a.show1(temp1);
a.show2(temp2);
return 0;
}
输出与上面一模一样,这里我就不把它粘上来了,^_^
相关文章推荐
- Scala 学习笔记(三)------定义具有可变参数的函数
- [原创]java WEB学习笔记109:Spring学习---spring对JDBC的支持:使用 JdbcTemplate 查询数据库,简化 JDBC 模板查询,在 JDBC 模板中使用具名参数两种实现
- template template parameter模板模板参数笔记----C++学习之路
- windows phone7 学习笔记05——主题、样式、控件模板
- Deep Learning(深度学习)学习笔记整理系列之LeNet-5卷积参数个人理解
- 孙鑫VC学习笔记:第十一讲 如何使窗口具有滚动条
- C++学习笔记58——模板实参推断
- flask学习笔记(-模板)
- 【python学习笔记】pandas.read_csv参数整理
- grunt学习笔记五:grunt模板
- IOS 学习笔记 2015-04-15 Xcode 工程模板分类
- springmvc学习笔记——传递对象作为参数(POJO)
- 【web开发学习笔记】Structs2 Result学习笔记(三)带参数的结果集
- scala学习笔记-隐式转换和隐式参数
- Effecticve学习笔记_条款45:运用成员函数模板接收所有兼容类型
- c#基础知识学习笔记 - 多个参数的索引器
- JavaScript学习笔记第一天——定义函数以及参数调用
- scala学习笔记5 (隐式转化/参数/类)
- c++学习笔记之成员模板
- 参数 - 学习笔记