今天在编程语言理论课中,我们在 Java 中看到了这种行为:
public class Es {
...
<Y> Y choose(Y y1, Y y2){
Y returnVal;
if("some test"){ returnVal = y1;} else{ returnVal = y2;}
return returnVal;
}
}
在主要:
Es c = new Es();
Integer i = 3;
Float f = (float) 4.5;
Number n = c.choose(i, f);
其中“令人难以置信”的是,该方法必须在 Integer 和 Float 之间选择参数类型 Y,并选择最接近的超类型,即 Number。
我想在 C++ 中重现它,但我被卡住了......