반응형
C언어에서 같은 이름의 함수는 정의하지 못했습니다.
하지만 C++에서는 함수의 이름이 같아도 매개변수를 다르게 하여 함수를 재정의하는 것이 가능합니다.
이게 바로 함수 오버로딩입니다. 매개변수가 다르다는 말은 매개변수의 이름이 다른 게 아니라, 자료형이나 개수가 달라야 한다는 것입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #include <iostream> using namespace std; void printType(int); void printType(double); void printType(char); void printType(char *); int main(){ int value1 = 100; double value2 = 123.456; char value3 = 'F'; char *value4 = "Hello world!"; printType(value1); printType(value2); printType(value3); printType(value4); } void printType(int a) { cout << "int" << endl; } void printType(double a) { cout << "double" << endl; } void printType(char a) { cout << "char" << endl; } void printType(char *a) { cout << "char *" << endl; } | cs |
같은 이름의 함수지만, 받는 매개변수의 타입이 다릅니다.
그리고 다른 타입의 인자를 전달했습니다.
C++에서는 인자의 타입을 체크하고 그에 맞는 함수를 실행합니다.
전달한 인자에 따라서 함수 오버로딩을 이용해 다른 결과가 나오는 것을 확인할 수 있습니다.
반응형
'Programming > C++' 카테고리의 다른 글
[C++] 생성자 (0) | 2018.01.22 |
---|---|
[C++] 클래스와 객체 (2) | 2018.01.22 |
[C++] 디폴트 매개변수 (0) | 2018.01.22 |
[C++] 함수 (0) | 2018.01.21 |
[C++] 구조체 (0) | 2018.01.21 |