[c++] 함수 오버로딩과 연산자 오버로딩
이번에는 C++에서 사용되는 함수 오버로딩과 연산자 오버로딩에 대해 알아보겠습니다.
함수 오버로딩
함수 오버로딩은 동일한 이름의 함수를 정의할 수 있는 기능입니다. 다만, 매개변수의 개수나 자료형이 다르거나 또는 반환형이 다를 경우에 한하여 같은 이름의 함수를 여러 개 정의할 수 있습니다.
다음은 함수 오버로딩의 간단한 예제입니다.
#include <iostream>
void print(int num) {
std::cout << "정수형: " << num << std::endl;
}
void print(double num) {
std::cout << "실수형: " << num << std::endl;
}
int main() {
print(10);
print(3.14);
return 0;
}
위의 예제에서 print
함수가 정수형과 실수형 매개변수를 받아 각각 다른 동작을 수행합니다.
연산자 오버로딩
연산자 오버로딩은 기존 연산자를 사용자 정의 데이터형에서 사용할 수 있도록 하는 기능입니다.
다음은 연산자 오버로딩의 간단한 예제입니다.
#include <iostream>
class Vector {
private:
int x, y;
public:
Vector(int a, int b) : x(a), y(b) {}
Vector operator+(const Vector& v) {
Vector result(x + v.x, y + v.y);
return result;
}
void display() {
std::cout << "x: " << x << ", y: " << y << std::endl;
}
};
int main() {
Vector v1(2, 3);
Vector v2(1, 4);
Vector v3 = v1 + v2;
v3.display();
return 0;
}
위의 예제에서는 +
연산자에 대한 오버로딩을 통해 Vector
객체 간의 덧셈을 구현했습니다.
이상으로 C++에서의 함수 오버로딩과 연산자 오버로딩에 대해 알아보았습니다.