본문 바로가기

C++

C++3일차

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 *= &a;
    int *= &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 :" << *<< std::endl << "S : " << *<< std::endl;
}
cs

위의 예제가 오버로딩의 예제입니다. 함수명이 같음에도 컴파일러에 돌려보면 오류가 발생하지 않고 잘돌아가고 정상적으로 값이 변경되는 것을 볼수 있습니다. (신기하군)

또한 매개변수를 함수에 넣을 경우 왼쪽에서 부터 들어간다네요..


'C++' 카테고리의 다른 글

C++6일차  (0) 2018.06.01
C++5일차  (0) 2018.05.30
C++4일차  (0) 2018.05.30
C++2일차  (0) 2018.05.27
C++1일차  (0) 2018.05.27