[ namespace @ 20.02.2010. 21:36 ] @
Kada istovremeno postoje genericka i negenericka funkcija (obe s istim prototipom) koja se poziva? Dobijam da se kod int i3=max<int> (i1, i2) poziva negenericka verzija iako sam ocekivala da ce ovo <int> naterati da se pozove genericka verzija. Code: #include <iostream> using namespace std; template <typename T> T max(T i, T j) { cout<<"Ovo je genericka f-ja"<<endl; return (i>j?i:j); } int max (int i, int j) { cout<<"Ovo je negenericka f-ja"<<endl; return (i>j?i:j); } int main() { int i1=1; int i2=2; float f1=2.5; float f2=3.5; int i3=max<int> (i1, i2); //negenericku poziva? cout<<"max(i1,i2)="<<i3<<endl; float f3=max<float> (f1, f2); cout<<"max(f1,f2)="<<f3<<endl; int i4=max (i1, i2); cout<<"max(i1,i2)="<<i4<<endl; return 0; } |