본문 바로가기

컴퓨터

1-2. 함수 오버 로딩(Function Overloading)

함수 오버 로딩이란?

함수의 이름이 같고 매개 변수의 타입 및 개수가 다른 둘 이상의 함수를 선언하는 것.

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