栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

C ++和Java中的“泛型”类型之间有什么区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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的泛型当然有助于类型安全。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/453586.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号