缺省模板实参

#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;
}

猜你喜欢

转载自javaeye-hanlingbo.iteye.com/blog/2407852