Stroustrup 先生在他的新书第 671 页中写道:
Note that there is no requirement that different arguments for the same template parameter should be related by inheritance.
我能看懂作者写的是什么,但我不明白他为什么要在文中插入这个评论。我想我在这里遗漏了一些东西,但我不知道到底是什么。
最佳答案
在介绍模板的概念时,他试图阐明这不是某种多态性。
在模板被发明并添加到 C++ 之前,您只能使用继承(或多重继承)编写通用代码。
Stroustrup 先生当然希望读者不要与模板混淆的另一个概念是接口(interface)。例如,在 Java 社区中,这是一种非常流行的技术,许多关于 OOP 的书籍都解释了这个概念。接口(interface)允许您在类中使用某种通用代码,条件是该类被定义为实现(而不是继承)特定接口(interface)。所有使用该接口(interface)的类都必须与其相关。这不是严格意义上的继承,而是一个kind of substitute to multiple inheritance。 .
模板可以与任何对象或类一起使用,而无需事先将其类型与任何共同点相关联。
关于c++ - 为什么对同一模板参数的不同参数会有这样的要求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27458001/