- java 泛型类型是伪泛型技术,在编译期会擦除所有的泛型信息.c++的是真泛型
每次编译时删除泛型信息,但是使用时会转化成类型. c++的模板是一组宏指令集,对于不同的类型生成不同的模板代码副本.MyClass<Foo> MyClass<Do>是不同的
区别: C++的泛型可以使用基本的数据类型,而java必须要转换成封装类,2)C++中类型可以实例化,java不行,3)java中的例子:MyClass<Foo>中Foo泛型不能用于静态方法和变量,他们会被共享,在c++中上面的两个类都是不同的,因此可以用于静态.4)java中擦除导致所有实例都是同一类型,但c++中每个都是不同的.实例类型也是不同的
-
参考:http://blog.csdn.net/lonelyroamer/article/details/7868820

发表回复