반응형


#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";
}

반응형
Posted by Rainfly
l