컴맹에서 컴공 그리고 화이트 해커가 되는 그날까지

C++은 함수 오버로딩이 된다!!! 본문

School Study/C++

C++은 함수 오버로딩이 된다!!!

공부하는 뚱이 2023. 8. 30. 23:16
반응형

C++은 함수 오버로딩 즉, 함수 이름이 같아도 매개변수가 전부 다르다는 걸 인지합니다! wow

 

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
using namespace std;

void swap_int(int& a, int& b) {
    int tmp = a;
    a = b;
    b = tmp;
}

void swap_double(double& a, double& b) {
    double tmp = a;
    a = b;
    b = tmp;
}

void swap_point(int* (&a), int* (&b)) {
    int* tmp = a;
    a = b;
    b = tmp;
}
int main(void) {
    int a = 10, b = 20;
    double da = 1.1, db = 2.2;
    int* pa = &a, * pb = &b;

    swap_int(a, b);
    swap_double(da, db);
    swap_point(pa, pb);

    cout << "a : " << a << endl;
    cout << "b : " << b << endl;
    cout << "da : " << da << endl;
    cout << "db : " << db << endl;
    cout << "*pa : " << *pa << endl;
    cout << "*pb : " << *pb << endl;
    return 0;
}


 

이 코드를 

 

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
using namespace std;

void swap(int& a, int& b) {
    int tmp = a;
    a = b;
    b = tmp;
}

void swap(double& a, double& b) {
    double tmp = a;
    a = b;
    b = tmp;
}

void swap(int* (&a), int* (&b)) {
    int* tmp = a;
    a = b;
    b = tmp;
}
int main(void) {
    int a = 10, b = 20;
    double da = 1.1, db = 2.2;
    int* pa = &a, * pb = &b;

    swap(a, b);
    swap(da, db);
    swap(pa, pb);

    cout << "a : " << a << endl;
    cout << "b : " << b << endl;
    cout << "da : " << da << endl;
    cout << "db : " << db << endl;
    cout << "*pa : " << *pa << endl;
    cout << "*pb : " << *pb << endl;
    return 0;
}

이렇게 해도 출력값은 동일하게 나옵니다!!!

반응형