일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- BOJ
- 백준
- Docker
- go channel
- 연결리스트
- gui
- JUCE 튜토리얼
- 운영체제
- JUCE라이브러리
- a tour of go
- C++
- JUCE
- c++ heap
- LOB
- 알고리즘
- C++ gui
- C++ library
- JUCE library
- 자료구조
- tour of go
- 리듬게임
- 프로그래밍
- vim-go
- go
- 공룡책
- C언어
- Nebula
- OS
- 코딩
- C++ gui 라이브러리
Archives
- Today
- Total
CafeM0ca
[C++] 디폴트 매개변수 본문
반응형
디폴트 매개변수는 함수에서 인자를 넘겨주지 않으면 지정한 값으로 초기화한다.
선언부에 디폴트 값을 설정해주고
1 2 3 | auto Func(int n = 10); auto Func(int n1, int n2 = 30); | cs |
정의 부분에서는 디폴트값을 명시하지 않아야한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | auto Func(int n /*= 10*/) { cout << n << endl; } auto Func(int n1, int n2 /*= 30*/) { cout << n1 << ", " << n2 <<endl; } // 잘못된 선언 // auto Func(int n1 = 30,int n2,int n3); | cs |
12번째줄을 보면 첫번째 매개변수가 디폴트 매개변수로 30이 지정해줬으나 이는 틀린 문법이다.
디폴트 매개변수는 오른쪽부터 순서대로 체워넣어야한다.
다음과 같이 중간에 비워져도 안된다.
1 2 3 4 | // 잘못된 선언 auto Func(int n1 = 30,int n2,int n3 = 40); | cs |
매개변수가 n인 함수를 인자를 넘겨주지 않으면 10을 출력한다.
인자로 20을 넘겨주면 20을 출력한다.
enum class도 마찬가지.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <iostream> using namespace std; enum class Alpha{ a, b, }; auto EnumTest(Alpha eng = Alpha::a) -> void { if(eng == Alpha::a){ cout << "a" << endl; } else if(eng == Alpha::b){ cout << "b" << endl; } else{ cout << "eng isn't both a and b" << endl; } } int main() { EnumTest(); EnumTest(Alpha::b); return 0; } | cs |
반응형
'Programming > C++' 카테고리의 다른 글
[딥러닝]역전파 (0) | 2018.06.10 |
---|---|
[딥러닝] 인공신경망 (0) | 2018.06.10 |
[C++]ios 플래그와 포멧/조직자 (0) | 2018.04.08 |
[C++]boost asio 튜토리얼 정리 (0) | 2018.04.05 |
[C++]boost asio g++ 컴파일 옵션 (0) | 2018.04.04 |
Comments