我编写了一个模板容器类 MyCont:
#include <iostream>
template <class T>
class MyCont
{
public:
void SomeFunc();
T* list;
};
template <class T>
void MyCont<T>::SomeFunc()
{
std::cout<<"in function"<<std::endl;
//...
}
int main()
{
MyCont<int> y;
y.SomeFunc();
MyCont< MyCont<int> > x;
x.SomeFunc();
}
这工作正常。但是,在 MyCont 的类型为 MyCont 的情况下,我希望能够更改 SomeFunc() 的行为。我不确定如何做到这一点(或者即使可能)。我尝试在 SomeFunc() 的第一个定义下添加它:
template <>
void MyCont< MyCont<class T> >::SomeFunc()
{
std::cout<<"in altered function"<<std::endl;
//...
}
这可以编译,但它始终是第一个调用的 SomeFunc
谢谢