iostream>
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
void swap(char* a, char* b)
{
char temp = *a;
*a = *b;
*b = temp;
}
void swap(double* a, double* b)
{
double temp = *a;
*a = *b;
*b = temp;
}
int main(void)
{
int num1 = 20, num2 = 30;
swap(&num1, &num2);
std::cout << num1 << " " << num2 << std::endl;
char ch1 = 'A', ch2 = 'B';
swap(&ch1, &ch2);
std::cout << ch1 << " " << ch2 << std::endl;
double dbl1 = 1.111, dbl2 = 5.555;
swap(&ch1, &ch2);
std::cout << dbl1 << " " << dbl2 << std::endl;
return 0;
}
main 함수에서 필요로 하는 swap 함수를 오버로딩 해서 구현하는 문제이다.
결과적으로 위 코드를 이용하면 된다.
내가 이것을 처음 구현할 때는,
swap 함수에서 주소를 바꾸려고 하는 오류를 범했다. 주소는 메모리상에 만들어지기 때문에 바꿀 수가 없다. 요 부분에 대해서는 더 자세히 알아봐야겠다.
'2023 1학기 > c++' 카테고리의 다른 글
[c++] virtual 함수가 필요한 이유 (0) | 2023.04.15 |
---|---|
[c++] string 함수들 (0) | 2023.04.14 |
[c++] Class Relationships : association, aggregation (0) | 2023.04.08 |
[c++]파일 입출력 c++ fstream, ofstream 사용 (0) | 2023.03.26 |
[c++] #ifndef #define #endif #pragma once (0) | 2023.03.26 |