[c++] 함수 오버로딩과 이벤트 추가
함수 오버로딩은 C++에서 매우 유용한 기능입니다. 함수 이름은 동일하지만 매개변수의 유형, 개수 또는 순서가 다를 때 여러 버전의 함수를 정의할 수 있습니다. 이를 통해 동일한 작업을 수행하는 다양한 유형의 입력을 처리할 수 있습니다. 함수 오버로딩은 코드의 가독성을 높이고 유지 보수를 용이하게 만듭니다.
여기 간단한 함수 오버로딩의 예시가 있습니다.
#include <iostream>
void printNumber(int x) {
std::cout << "정수: " << x << std::endl;
}
void printNumber(float x) {
std::cout << "부동 소수점: " << x << std::endl;
}
int main() {
printNumber(5);
printNumber(5.5f);
return 0;
}
위의 예시에서는 printNumber
함수를 정수와 부동 소수점 매개변수에 대해 오버로딩하여 두 가지 버전의 함수를 정의했습니다.
이벤트 추가는 객체 지향 프로그래밍에서 중요한 개념입니다. 이벤트는 특정한 동작이나 트리거를 나타내며, 이벤트가 발생하면 처리기가 실행됩니다. C++에서 이벤트를 추가하는 방법은 다양하지만, 클래식한 방법은 콜백 함수를 사용하는 것입니다. 콜백 함수는 이벤트가 발생했을 때 호출되는 함수를 정의합니다.
이벤트 추가의 예시:
#include <iostream>
class Button {
public:
typedef void (*OnClick)();
void setOnClick(OnClick onClick) {
m_onClick = onClick;
}
void click() {
if (m_onClick != nullptr) {
m_onClick();
}
}
private:
OnClick m_onClick = nullptr;
};
void handleButtonClick() {
std::cout << "Button clicked!" << std::endl;
}
int main() {
Button button;
button.setOnClick(handleButtonClick);
button.click();
return 0;
}
위의 예시에서는 Button
클래스에 setOnClick
함수를 추가하여 클릭 이벤트에 대한 콜백 함수를 등록하고, click
함수를 통해 이벤트를 트리거합니다.
함수 오버로딩과 이벤트 추가는 C++ 프로그래밍에서 기능을 확장하고 유연성을 높이는 데 유용한 도구입니다.
참고 문헌:
- https://en.cppreference.com/w/cpp/language/overloading
- https://www.learncpp.com/cpp-tutorial/function-overloading/
- https://www.learncpp.com/cpp-tutorial/introduction-to-event-handling/