如果下面是簡單函式模板的定義:
template<typename T>
T compare(T a, T b)
{
return a>b ? a : b;
}
可以根據運行時的一些用戶輸入使用不同的模板引數呼叫它,而無需創建類模板,具有不同的T值,例如:
char type;
cout<<"Enter type: ";
cin>>type;
if( type=='i')
{
int x=compare<int>(3,6);
}
else if( type=='d' )
{
double z=compare<double>(5.1,7.9);
}
..so on
uj5u.com熱心網友回復:
不。如果你想在運行時確定型別,那么你需要做你在做什么(if else)
有更高級的技術用于更高級的用途,例如使用帶有可呼叫表的多型性,但本質上它們做同樣的事情,只是以一種更高級的方式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/380292.html
