我有點困惑如何在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