我有以下模板代码:
class ClassName{};
template <class T>
class TemplatePtr
{
public:
void operator=(T* p)
{
}
};
class TemplatePtr_ClassName: public TemplateePtr<ClassName>
{
public:
~TempaltePtr_ClassName();
};
void Test()
{
TemplatePtr_ClassName data;
data = new ClassName;
}
Run Code Online (Sandbox Code Playgroud)
但编译失败并显示错误消息(VS2008):
错误C2679:二进制"=":没有操作员发现它采用类型>>"类名*"的右边的操作数(或没有可接受的转化率)
为什么它不起作用,因为我在模板基类中定义了一个运算符?