예제 10-1 제네릭 myswap( ) 함수 만들기
#include <iostream>
using namespace std;
class Circle {
int radius;
public:
Circle (int radius =1) {
this -> radius = radius;
}
int getRadius() {
return radius;
}
};
template <class T>
void myswap(T &a, T &b) {
T tmp;
tmp = a;
a = b;
b = tmp;
}
int main() {
int a=4, b=5;
myswap(a,b);
cout << "a= " << a << ", " << "b= " << b << endl;
double c= 0.3, d= 12.5;
myswap(c,d);
cout << "c=" << c << ", d= " << d << endl;
Circle donut(5), pizza(20);
myswap(donut,pizza);
cout << "donut radius= " << donut.getRadius() << ", " << "pizza radius= " << pizza.getRadius()<< endl;
}
예제 10-2
#include <iostream>
using namespace std;
template <class T>
T bigger(T a, T b){
if (a>b)
return a;
else
return b;
}
int main(){
int num1,num2;
num1 = 1;
num2 = 2;
cout << bigger(num1,num2) << endl;
float num3,num4;
num3 = 1.342;
num4 = 0.123;
cout << bigger(num3,num4) << endl;
}