[c++] 함수 오버로딩과 콴트백 함수

함수 오버로딩(function overloading)과 콜백 함수(callback function)는 C++ 프로그래밍에서 중요한 개념입니다. 이 두 가지 기술은 코드의 유연성을 높이고, 프로그램의 유지보수를 용이하게 만들어줍니다.

함수 오버로딩

함수 오버로딩은 한 클래스나 네임스페이스 안에서 동일한 이름을 가진 여러 함수를 정의하는 것을 말합니다. 함수 오버로딩을 통해 매개변수의 타입, 개수, 순서 등을 다르게 함으로써, 동일한 이름의 함수를 다양한 방식으로 호출할 수 있습니다.

아래는 함수 오버로딩의 간단한 예시입니다.

#include <iostream>
using namespace std;

class OverloadExample {
public:
    void print(int num) {
        cout << "정수: " << num << endl;
    }
    void print(double num) {
        cout << "실수: " << num << endl;
    }
};

int main() {
    OverloadExample obj;
    obj.print(5);
    obj.print(4.5);
    return 0;
}

위 예시에서 print 함수는 동일한 이름으로 int와 double 타입의 매개변수를 받아 출력합니다.

콜백 함수

콜백 함수는 다른 함수의 매개변수로 전달되어, 그 함수 내에서 호출되는 함수를 가리킵니다. 이는 이벤트 처리나 비동기 작업 등에서 유용하게 활용됩니다.

아래는 간단한 콜백 함수의 예시입니다.

#include <iostream>
using namespace std;

void performOperation(int x, int y, int (*callback)(int, int)) {
    int result = callback(x, y);
    cout << "결과: " << result << endl;
}

int add(int a, int b) {
    return a + b;
}

int main() {
    performOperation(5, 3, add);
    return 0;
}

위 예시에서 performOperation 함수는 add 함수를 콜백으로 받아 두 정수를 더한 결과를 출력합니다.

함수 오버로딩과 콜백 함수는 C++ 프로그래밍에서 매우 유용한 개념이며, 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.

참고 문헌: