模板类可以有纯虚函数和虚运算符吗?

Can a template class have pure virtual functions and virtual operators?

本文关键字:函数 运算符      更新时间:2023-10-16

我的教授非常坚持界面类不能被模板化。具体来说,具有纯虚函数的类不能具有模板参数。更进一步,他说你不能做虚拟运营商。

这是他当时向我们展示的例子。

template <typename T>
class Array {
public:
virtual void fill(T t) = 0;
virtual T& operator[](size_t i) const = 0;
// ... 
};

这段代码没有错吧?历史上有没有C++不会编译的时刻?我在作业中使用了这种确切形式的代码,它运行良好。

模板类可以有纯虚函数和虚运算符吗?

是的。

这段代码没有错吧?

右。

历史上有没有C++不会编译的时刻?

可能。我不能肯定地说它会用原来的 Cfront 转译器编译。

但是,它在任何标准C++版本中的格式都很好。