본문 바로가기
OLD/[C++]개념정리

[개탱][C++][Function Overloading][operator overloading][함수 오버로딩][default argument][부재 인수][syntax]

by 개탱 2018. 1. 2.
728x90


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#pragma once
#include<cstdio>
 
int add(int a, int b);
 
int main(){
    
    int ans;
 
    ans = add(10,20);
    printf("%d\n",ans);
 
 
int add(int a, int b)
{
    return a+b;
}
cs



이렇게 처음에 a 와 b를 더한값을 리턴을 하게 해주려했는데 갑자기

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#pragma once
#include<cstdio>
 
int add(int a, int b);
 
int main(){
    
    int ans;
 
    ans = add(10,20);
    ans = add(10,20,30);
    printf("%d\n",ans);
 
 
int add(int a, int b)
{
    return a+b;
}
cs


갑자기 3개지를 더하는 결과가 필요하다고 한다. 그때


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#pragma once
#include<cstdio>
 
int add(int a, int b);
int add(int a, int b, int c);
int add(int a, int b, int c, int d);
 
int main(){
    
    int ans;
 
    ans = add(10,20);
    ans = add(10,20,30);
    printf("%d\n",ans);
 
 
int add(int a, int b)
{
    return a+b;
}
 
cs



이런식으로 함수 이름을 여러번 쓸 수 있게해주는 제도가

Function Overloading  || operatio overloading 라는게 있다.


위와 같은 경우를 좀더 편하기위해서 부재인수라는 방식이있다.


add함수를 function overloading 를 이용하여서 여러개를 만들어줬는데
여러가지를 써주는게 또 귀찮다.

그때 쓰는게
Default argument (부재 인수) 라고 부른다.
바로


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#pragma once
#include<cstdio>
 
int add(int a, int b, int c = 0int d = 0int e  = 0int f  = 0);
 
int main(){
    
    int ans;
 
    ans = add(10,20);
    ans = add(10,20,30);
    printf("%d\n",ans);
 
 
int add(int a, int b, int c = 0int d = 0int e  = 0int f  = 0)
{
    return a+b+c+d+e+f;
}
 
cs


int add(int a, int b, int c = 0int d = 0int e  = 0int f  = 0)

위 코드와 같이 여러개의 매개변수들을 정의를 해둔 뒤

값이 안들어오면 이 값은 0이라는 디폴트 값으로 지정을 해준다는 의미이다 !


댓글