模板 class 可以有纯虚函数和虚运算符吗?
Can a template class have pure virtual functions and virtual operators?
我的教授非常坚持界面 类 不能模板化。具体来说,类 with pure virtual functions 不能有模板参数。更进一步,他说你不能做虚拟运营商。
这是他当时给我们看的例子。
template <typename T>
class Array {
public:
virtual void fill(T t) = 0;
virtual T& operator[](size_t i) const = 0;
// ...
};
这段代码没有问题吧?在 C++ 历史上是否有过无法编译的情况?我在作业中使用了这种确切形式的代码,并且效果很好。
Can a template class have pure virtual functions and virtual operators?
是的。
There's nothing wrong with this code right?
没错。
Has there ever been a point in C++ history where this wouldn't compile?
可能吧。我不能肯定地说它可以用原来的 Cfront 转译器编译。
但是,它在任何标准 C++ 版本中都是良构的。
我的教授非常坚持界面 类 不能模板化。具体来说,类 with pure virtual functions 不能有模板参数。更进一步,他说你不能做虚拟运营商。
这是他当时给我们看的例子。
template <typename T>
class Array {
public:
virtual void fill(T t) = 0;
virtual T& operator[](size_t i) const = 0;
// ...
};
这段代码没有问题吧?在 C++ 历史上是否有过无法编译的情况?我在作业中使用了这种确切形式的代码,并且效果很好。
Can a template class have pure virtual functions and virtual operators?
是的。
There's nothing wrong with this code right?
没错。
Has there ever been a point in C++ history where this wouldn't compile?
可能吧。我不能肯定地说它可以用原来的 Cfront 转译器编译。
但是,它在任何标准 C++ 版本中都是良构的。