今天在编程语言类的理论,我们在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++,但我坚持......
这些被称为[通用方法](https://docs.oracle.com/javase/tutorial/java/generics/methods.html)。我相信你想要在C++模板中进行转换,但我很久没有使用过这些了。但是这可以帮助你做一些研究 – AxelH