함수 오버 로딩이란?
함수의 이름이 같고 매개 변수의 타입 및 개수가 다른 둘 이상의 함수를 선언하는 것.
C 컴파일러는 호출하고자 하는 함수를 찾을 때 오로지 함수의 이름 정보만을 가지고 찾기 때문에 동일한 이름의 함수 정의는 허용하지 않는다.
C++ 컴파일러는 호출하고자 하는 함수를 찾을 때 함수의 이름과 매개변수의 정보까지도 참조를 하기 때문에 이름이 동일하더라도 매개변수의 타입 및 개수가 다르면 선언하는 데 문제가 되지 않는다. 그리고 리턴타입만 달라서는 오버 로딩되지 않는다.
#include <iostream>
void function(void) {
std::cout << "function(void) call" << std::endl;
}
void function(char c) {
std::cout << "function(char c) call" << std::endl;
}
void function(int a, int b) {
std::cout << "function(int a, int b) call" << std::endl;
}
int main(void) {
function();
function('a');
function(12, 13);
return 0;
}
'컴퓨터' 카테고리의 다른 글
1-4. 인-라인(in-line) 함수 (0) | 2019.04.05 |
---|---|
1-3. 디폴트(Default) 매개 변수 (0) | 2019.04.05 |
1-1. printf와 scanf를 대신하는 입/출력 방식 (0) | 2019.04.04 |
함수의 매개변수로 배열 전달 (0) | 2019.04.02 |
sprintf (0) | 2019.04.01 |