C++ 和 Java 中的“通用”类型有什么区别?

2023-02-09
前端之家小编收集整理的C++ 和 Java 中的“通用”类型有什么区别?内容,希望整理的这个开发编程问题C++ 和 Java 中的“通用”类型有什么区别?能够快速解决!

代码问题

他们之间有很大的不同。在 C++ 中,您不必为泛型类型指定类或接口。这就是为什么您可以创建真正通用的函数和类,但需要注意的是更宽松的类型。

template <typename T> T sum(T a, T b) { return a + b; }

上面的方法添加了两个相同类型的对象,并且可以用于任何具有“+”运算符的类型 T。

在 Java 中,如果要对传递的对象调用方法,则必须指定类型,例如:

<T extends Something> T sum(T a, T b) { return a.add ( b ); }

在 C++ 中,泛型函数/类只能在标头中定义,因为编译器会为不同的类型(调用它的)生成不同的函数。所以编译比较慢。在 Java 中,编译没有重大损失,但 Java 使用一种称为“擦除”的技术,其中泛型类型在运行时被擦除,因此在运行时 Java 实际上是调用…

Something sum(Something a, Something b) { return a.add ( b ); }

因此,Java 中的泛型编程并不是真正有用,它只是帮助新的 foreach 构造的一点语法糖。

上面关于有用性的意见是由一个年轻的自己写的。Java 的泛型当然有助于类型安全。

问题答案

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:starryrocklee#gmail.com (将#修改为@)

如果觉得前端之家所整理的内容很不错的话,欢迎点击下方分享按钮,转发给身边开发程序员好友。

编程问答


CREATE FILE 遇到操作系统错误 5(访问被拒绝。)
如何在一个查询中删除具有公共前缀的多个表?
多语句 TVF 与内联 TVF 性能
由于可能丢失数据,无法转换该值
SQL Server 数据库不收缩