相关疑难解决方法(0)

为什么operator =不从模板类继承

我有以下模板代码:

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:二进制"=":没有操作员发现它采用类型>>"类名*"的右边的操作数(或没有可接受的转化率)

为什么它不起作用,因为我在模板基类中定义了一个运算符?

c++ inheritance templates

5
推荐指数
2
解决办法
2553
查看次数

标签 统计

c++ ×1

inheritance ×1

templates ×1