c++ - 为什么对同一模板参数的不同参数会有这样的要求?

标签 c++ templates c++11

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/

相关文章:

c++ - 可以在 switch 中使用 OR 吗?

c++ - 基本 C++ 套接字客户端

c++ - 除非使用 cout,否则代码不会执行

angularjs - 如果使用 Angular ,模板引擎有用吗?

C++11 性能 : Lambda inlining vs Function template specialization

c++ - 如何取消 std::async 函数?

C++如何声明一个临时的未命名、未初始化的数组?

c++ - 为什么打包对象的 sizeof 低于预期?

c++ - 模板函数和 const 限定符中的类型推导

c++ - 将数组的值分配给C++中另一个数组的索引