#include <vector>
#include <list>
#include <iostream>
using namespace std;
template<typename Type = vector<int>> // 默认类型设定为vector
class MyClass {
private:
Type m_data;
public:
MyClass(Type &data) : m_data(data) {};
~MyClass() {};
void ShowData();
};
template<typename Type = vector<int>>
void MyClass<Type>::ShowData() {
// 模板类型嵌套依赖,使用typename声明
typedef typename Type::iterator Type_iter;
for (Type_iter it = m_data.begin(); it != m_data.end(); ++it) {
std::cout << (*it) << endl;
}
}
int main() {
list<int> b{1,2,3,4,5,6,7};
MyClass<list<int>> a(b);
a.ShowData();
return 0;
}