64,654
社区成员
发帖
与我相关
我的任务
分享
template < template <class T,typename = std::allocator<T> > class my_class , class B >
class TEST
{
private:
my_class <B > sam;
int a;
public:
};
//改成这样,运行环境:VC6
#include <iostream>
#include <vector>
#include <iterator>
using namespace std;
template<class B>
class my_class
{
public:
int size(){return 0;}
int operator[](int i){return 0;}
};
template < class T, class B >
class TEST
{
private:
my_class <B > sam;
int a;
public:
TEST(){ a = 2222 ; }
void show() ;
void push(B value);
};
template < class T, class B >
void TEST <T,B >::show()
{
int i;
for (i=0 ; i <sam.size();i++)
cout <<sam[i] <<" ";
}
template < class T, class B >
void TEST < T, B>::push(B value)
{
sam.push_back(value);
}
int main()
{
TEST <vector<int>,int> p; // 这里的问题
//类模板“std::vector”的模板参数列表与模板参数“my_class”的模板参数列表不匹配
p.show();
//cin.get();
return 0;
}
#include <iterator>
using namespace std;
template < template <class T, class _Ax = allocator<T> > class my_class , class B >
class TEST
{
private:
my_class <B> sam;
int a;
public:
TEST(){ a = 2222 ; }
void show() ;
void push(B value);
};
template < template <class T, class _Ax = allocator<T> > class my_class , class B >
void TEST <my_class,B >::show()
{
int i;
for (i=0 ; i <sam.size();i++)
cout <<sam[i] <<" ";
}
template < template <class T, class _Ax = allocator<T> > class my_class , class B >
void TEST <my_class , B>::push(B value)
{
sam.push_back(value);
}