#include <iostream>
using namespace std;
template <class Any> // == template <typename Any>
void _swap(Any &a, Any &b); // 1번 함수
void _swap(void); // 2번 함수, 함수 오버로딩
void _swap(double a, int b = 2); // 3번 함수, 함수 오버로딩 및 매개변수 하나를 디폴트 처리해논다.
int main()
{
int i = 10;
int j = 20;
cout << "i, j = " << i << ", " << j << ".\n";
cout << "int type _swap() act \n";
_swap(i,j); // 1번 함수 실행 이지만 int version
cout << "i, j = " << i << ", " << j << ".\n\n";
_swap(); // 2번 함수 실행
_swap(3.0); // 3번 함수 실행
// 하지만 디폴트값으로 int b =2 이므로 2개 인자 사용
double x = 24.5;
double y = 12.5;
cout << "x, y = " << x << ", " << y << ".\n";
cout << "double type _swap() act \n";
_swap(x,y); // 1번 함수 실행 이지만 double version
cout << "x, y = " << x << ", " << y << ".\n";
return 0;
}
template <class Any> // 1번 함수
void _swap(Any &a, Any &b){
Any temp;
temp = a;
a = b;
b = temp;
}
void _swap(void){ // 2번 함수
cout << "애는 오버로드 함수다\n\n";
}
void _swap(double a, int b){ // 3번 함수
cout << "애는 디폴트 전달 인자값\n";
cout << "매개변수 값 : " << a << ", 디폴트 매개변수 값 : " << b << "\n\n";
}
'I.T > Programming' 카테고리의 다른 글
C++ study : get, getline, cin, cout, struct, union, enum, new, delete ... (0) | 2011.05.13 |
---|---|
unexpected end of file while looking for precompiled header directive : compile error (0) | 2011.04.21 |
함수를 가리키는 포인터변수 (0) | 2011.04.08 |
참조 전달 인자 '&' (0) | 2011.04.08 |
const (0) | 2011.04.08 |