今天在編程語言類的理論,我們在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