13. maj 2006 - 23:22Der er
6 kommentarer og 1 løsning
C++ function template med call by reference
sidder og bikser med noget C++, men forstår ikke helt hvorfor compileren brokker sig (visual c++ 6.0).
jeg startede med at lave funktionen uden template, men når jeg template'r den, siger compileren: "none of 2 overload have a best conversion" "ambigious call to overloaded function"
template <class Type> void swap(Type & a,Type & b){ // <-- her bruges reference Type tmp = b; b = a; a = Type; } void exc14_4(){ int a=2 , b=5; swap(a,b); //<-- fejlen pejer her... cout << "a:" << a << endl << "b:" << b << endl; }
tilsyneladende... havde glemt alt om det --- Bestod C++ eksamen ;)
//using pointers...
template <class T>void swap(T* a,T* b){ T tmp = b; b = a; a = tmp; } /* //address swapping template <class Type> void swap(Type a,Type b){ Type tmp = b; b = a; a = tmp; }*/ void exc14_4(){ int a=2 , b=5;
swap(a,b); cout << "a:" << a << endl << "b:" << b << endl; /* swap(&a,&b); cout << "a:" << a << endl << "b:" << b << endl;*/ }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.