C++3일차
함수
1. 함수의 오버로딩
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 | #include <iostream> void swap(int &a, int &b) { int tmp = a; a = b; b = tmp; } void swap(double &a, double &b) { double tmp = a; a = b; b = tmp; } void swap(int* (&a), int* (&b)) { int *tmp = a; a = b; b = tmp; } int main() { int a(5); int b(10); double c(10); double d(20); int *p = &a; int *s = &b; swap(a, b); swap(c, d); swap(p, s); std::cout << "A :" << a << std::endl << "B : " << b << std::endl; std::cout << "C :" << c << std::endl << "D : " << d << std::endl; std::cout << "P :" << *p << std::endl << "S : " << *s << std::endl; } | cs |
위의 예제가 오버로딩의 예제입니다. 함수명이 같음에도 컴파일러에 돌려보면 오류가 발생하지 않고 잘돌아가고 정상적으로 값이 변경되는 것을 볼수 있습니다. (신기하군)
또한 매개변수를 함수에 넣을 경우 왼쪽에서 부터 들어간다네요..