我有点困惑如何在c + +中的模板和泛型工作。java泛型和c + +模板
public class Box<T> {
private T t;
public void add(T t1) {
this.t = t1;
}
public T get() {
return t;
}
public <U> void inspect(U u){
System.out.println("T: " + t.getClass().getName());
System.out.println("U: " + u.getClass().getName());
}
public static void main(String[] args) {
Box<Integer> integerBox = new Box<Integer>();
integerBox.add(new Integer(10));
integerBox.inspect(10);
}
}
您是否对泛型感到困惑?或者关于Java和C++泛型编程之间的差异?如果你关心后者,请参见[C++和Java中的“泛型”类型之间的区别是什么?](http://stackoverflow.com/questions/36347/what-are-the-differences-between-generic -types-in-c-and-java) – 2010-08-10 02:28:07
如果你想了解模板,我认为你问的是错误的问题。 Java泛型和C++模板虽然看起来语法非常相似,但它们只是模糊的类似的构造,而且更类似。你的例子也依赖于自动装箱,这是C++中的空概念。 C++没有自动装箱,也从来不会,因为它没有任何意义。最接近的C++获得的是自动转换,但它们并非真的非常类似于自动装箱。 – Omnifarious 2010-08-10 03:31:03