Minwoo Dev.

[C++] 윤성우의 열혈 C++ 프로그래밍 Ch01-2 : 함수 오버로딩 본문

C++

[C++] 윤성우의 열혈 C++ 프로그래밍 Ch01-2 : 함수 오버로딩

itisminu 2024. 3. 2. 16:53
728x90
반응형
SMALL

 

문제

 

다음 main 함수에서 필요로 하는 swap 함수를 오버로딩해서 구현해보자.

#include <iostream>

int main(void)
{
    int num1 = 20, num2 = 30;
    swap(&num1, &num2);
    std::cout << num1 << ' ' << num2 << std::endl;

    char ch1 = 'A', ch2 = 'Z';
    swap(&ch1, &ch2);
    std::cout << ch1 << ' ' << ch2 << std::endl;

    double dbl1 = 1.111, dbl2 = 5.555;
    swap(&dbl1, &dbl2);
    std::cout << dbl1 << ' ' << dbl2 << std::endl;
    return 0;
}

 

 

 

 

정답

void swap(int *num1, int *num2)
{
    int temp = *num1;
    *num1 = *num2;
    *num2 = temp;
}

void swap(char *ch1, char *ch2)
{
    char temp = *ch1;
    *ch1 = *ch2;
    *ch2 = temp;
}

void swap(double *dbl1, double *dbl2)
{
    double temp = *dbl1;
    *dbl1 = *dbl2;
    *dbl2 = temp;
}

 

 

swap 함수를 포함한 총 코드

#include <iostream>

void swap(int *num1, int *num2)
{
    int temp = *num1;
    *num1 = *num2;
    *num2 = temp;
}

void swap(char *ch1, char *ch2)
{
    char temp = *ch1;
    *ch1 = *ch2;
    *ch2 = temp;
}

void swap(double *dbl1, double *dbl2)
{
    double temp = *dbl1;
    *dbl1 = *dbl2;
    *dbl2 = temp;
}

int main(void)
{
    int num1 = 20, num2 = 30;
    swap(&num1, &num2);
    std::cout << num1 << ' ' << num2 << std::endl;

    char ch1 = 'A', ch2 = 'Z';
    swap(&ch1, &ch2);
    std::cout << ch1 << ' ' << ch2 << std::endl;

    double dbl1 = 1.111, dbl2 = 5.555;
    swap(&dbl1, &dbl2);
    std::cout << dbl1 << ' ' << dbl2 << std::endl;
    return 0;
}

 

결과

728x90
반응형
LIST