C++/C++ : Study
C++ Overloading 오버로딩
더블유제이플로어
2024. 9. 9. 00:48
객체지향 프로그래밍(Object Oriented Programming)의 특징
오버로딩, 오버라이딩에서 다형성(Polymorphism)을 알 수 있다.
오버로딩이란?
다중 정의는 정수, 식별자, 연산자에 대한 성질로 동일한 유효 범위 내에서도 여러 가지 뜻을 가질 수 있다.
[네이버 지식백과] 오버로딩 [컴퓨터인터넷IT용어대사전]
함수 오버로딩 (1)
● 서로 다른 매개변수 리스트를 갖는 동일한 이름의 함수 정의
● 추상화의 한 예시
● 다형성의 한 예시
≫ 유사한 개념의 함수를 다른 타입에 대해 정의한다.
● 객체 지향 프로그램 구현을 위한 중요한 기법 중 하나
● 컴파일러는 주어진 인수와 함수들의 파라메터 정의를 기반으로 개별적인 함수를 구분 할 수 있어야 한다.
#include <iostream>
using namespace std;
int add_number(int, int); // 함수의 이름은 add_number(int, int) 까지 이름으로 파악한다.
double add_number(double, double);
int main()
{
// 변수는 똑같은 이름을 선언할 수 없다.
int a;
int a; // Error
cout << add_number(10, 20) << endl;
cout << add_number(10.12, 20.23) << endl;
return 0;
}
int add_number(int a, int b)
{
return a + b;
}
double add_number(double a, double b)
{
return a + b;
}
10.0 + 20.0 과 10 + 20 다를 수 있다.
함수 오버로딩 (2)
● 반환 타입에 따라 구분은 할 수 없다는 것에 주의할 것
int get_value();
double get_value();
...
cout << get_value() << endl; // ???
C#도 동일하기에 반환값이 다른 동작이 동일한 함수를 작성하고 싶을 때,
반환형에 맞게 매개변수라도 변경해주어야 한다.
출처 :
오버로딩(Overloading) 오버라이딩(Overriding)
🔍 오버로딩, 오버라이딩
velog.io
https://youtu.be/J8Bkh-jqqHg?si=BbEU3E20Fv1Us3oB