#include<iostream>
#include<vector>
#include<list>
//1. 第二个类型参数的缺省值是vector<T>
template<typename T, typename T2 = std::vector<T> >
class MyClass {
public:
T2 data;
MyClass() {
std::cout<<" type 1. \n";
}
void setData(){
for(int i=0;i<10;i++){
data.push_back(i);
}
}
void outPutData(){
for(int i=0;i<10;i++){
std::cout<<data.back()<<std::endl;
data.pop_back();
}
}
};
int main() {
MyClass<int> c1; //第二个类型参数是vector<int>
MyClass<int,std::list<int> > c2; //第二个类型参数是list<int>
c1.setData();
c1.outPutData();
c2.setData();
c2.outPutData();
return 0;
}
分享到:
相关推荐
候选的函数模板总是可行的,因为模板实参推断会排除任何不可行的模板。 与往常一样,可行函数(模板与非模板)按类型转换 (如果对此调用需要的话)来排序。当然,可以用于函数模板调用的类型转换是非常有限的。 ...
VB 变量做实参举例 VB 变量做实参举例
VB 数组元素做实参实例 VB 数组元素做实参实例 VB 数组元素做实参实例
VB 数组名做实参实例 VB 数组名做实参实例 VB 数组名做实参实例
61.java实参.zip61.java实参.zip61.java实参.zip61.java实参.zip61.java实参.zip61.java实参.zip61.java实参.zip61.java实参.zip61.java实参.zip61.java实参.zip61.java实参.zip61.java实参.zip61.java实参.zip61....
本文档是一个实参形参影响的程序的调试过程及结果,可以帮助更好的理解函数实参与形参关系
VB6.0把常量作为实参方法示例,书中的代码,分享给大家,后附完整源码下载。 Sub s(n As Integer) '定义子过程 Dim i As Integer For i = 1 To n '子过程的功能是输出n个空格 Print " "; Next i End Sub...
C什么叫实参 形参 ?怎么用?区别?
Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和...
函数模板和普通函数区别结论: 函数模板不允许自动类型... 4 可以通过空模板实参列表的语法限定编译器只通过模板匹配 template void func(T x) { cout << "func的值是:" < T func(T x, T y) { co
VB 常量做实参举例 VB 常量做实参举例
函数的类型可以是void、int、char等,函数名是函数的唯一标识符,形式参数是函数被调用时用于接收实参值的变量。函数体是函数的实现部分,包括说明部分和执行部分,其中说明部分包括函数中所用的局部变量等的说明、...
在用实参调用模板函数的时候,一般不会转换实参以匹配已有的实例化,而是会通过模板函数产生新的实例以适应该实参。 例如:template <typename> int compare(const T& v1,const T& v2) short s1,s2; int i1,...
传递实参.html
编写函数,由实参传来一个字符串,统计其中字母,数字空格,和其他字符的个数
用实际代码的形式阐述了ByVal和ByRef的区别以及形参和实参的区别。 源码在VB.net 2010下调试通过。 欢迎指正!
Visual C# 2010 引入了命名实参和可选实参。利用“命名实参”,您将能够为特定形参指定实参,方法是将实参与该形参的名称关联,而不是与形参在形参列表中的位置关联。利用“可选实参”,您将能够为某些形参省略实参...
用代码的形式阐述了ByVal和ByRef的区别以及形参和实参的区别。源码在VB.net 2010下调试通过。 欢迎指正!
C语言实参、形参、函数调用、指针、引用、&符号实例 在C语言中,实参和形参是两个非常重要的概念。实参是指在函数调用时传递给函数的实际参数,而形参是指函数定义中用于接收实参的形式参数。 在函数调用时,实参...