일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- linux c++ 컴파일
- CUDA
- 남산업힐
- 이진수 곱셈 알고리즘
- 컨벌루션 연산
- DNN 가속기
- pygraphviz 설치 오류
- systolic array
- CLOCK GATING
- Pyverilog 설치
- 데이터 해저드
- Data HAzard
- gpgpu-sim
- 대구 반도체 설계기업 특화
- 클럭 게이팅
- pytest-pythonpath 설치 오류
- linux c 컴파일
- AMBA
- Design DNN Accelerator
- linux makefile 작성
- 딥러닝 가속기
- DNN Accelerator
- Makefile compile
- Pyverilog 튜토리얼
- CDC
- pyverilog 설치 오류
- makefile
- Pyverilog 실행
- gcc 컴파일
- Pyvrilog tutorial
- Today
- Total
오늘은 맑음
c++ 함수 overloading 및 default 매개변수 본문
함수 overloading
C에서는 없는 overloading기능이 C++에 추가되었다.
만약 C에서 아래의 두 함수가 선언되있다면 어떻게될까?
int add(int a);
int add(int a, int b);
C에서는 컴파일 오류가 발생할 것이다.
C++에서는 매개변수와 함수명을 이용해 함수를 판단하기 때문에 오류가 발생하지 않는다.
하지만 overloading시 주의사항이 있다.
매개변수의 형태가 같지만 반환형이 다른경우에는 overloading이 되지 않는다.
default 매개변수
C++에서는 default 매개변수를 선언할 수 있다.
int add(int a=1);
int add(int a){
return ++a;
}
위와 같은 함수가 선언되어 있으며 main에서 add();라고 함수를 호출한다면 결과값은 어떻게 출력이 될까?
결과는 2가 출력이 된다.
default 매개변수가 1로 선언되어 있어 매개변수를 전달하지 않는다면 자동으로 1이 매개변수로 들어가기 때문이다.
default 매개변수는 여러개를 선언할 수 있다.
int add(int a=1, int b=2, int c=3...);
default 매개변수를 선언할때 주의사항이 있다.
매개변수는 전달될 때 왼쪽부터 채워지며 전달되지 않은 매개변수는 default매개변수로 채워진다.
따라서 함수를 선언할 때 default 매개변수는 다음과 같이 우측에 위치해야 한다.
int add(int a, int b=1, int c=2);
만약 int add(int a=1, int b);와 같이 함수가 선언되면 컴파일 오류가 발생할 것이다.
'Language > c, c++' 카테고리의 다른 글
c++ argc argv 사용하기 (0) | 2019.03.18 |
---|---|
string에서 int 변환/int에서 string 변환 (0) | 2019.02.25 |
c++ 알고리즘 삽입정렬 (0) | 2019.02.13 |
c++ cin을 활용하여 데이터 입력받기 (0) | 2018.03.21 |
c++ cout을 활용하여 화면 출력하기 (0) | 2018.03.12 |