考虑以下代码:
class MyClass
{
...
};
template <typename Object>
class List
{
public:
void insert(const Object & x)
{
// call when Object is MyClass
}
void insert(const Object & x)
{
// call when Object is MyClass*
}
}
int main()
{
MyClass a;
List<MyClass> lst;
List<MyClass*> plst;
lst.insert(a);
plst.insert(new Myclass);
return 0;
}
如何告诉编译器基于模板是类还是指针调用不同的方法?
如何修复上面的代码?
list<T>
和vector<T>
类并不关心,为什么您的List<T>
会关心呢?它在做什么取决于模板参数是类类型吗? - user743382