디폴트 매개변수
C++함수에서는 매개변수에 대한 기본(default) 값을 지정할 수 있습니다.
만약 함수의 매개변수에 대응하는 인자가 함수의 호출 시에 생략되면 매개변수에 기본 값이 복사됩니다.
이것을 함수의 기본(디폴트) 매개변수(default parameter)라고 합니다.
주의할 점은디폴트 매개변수는 맨 뒤에서부터 앞쪽으로 순서대로 채워서만 정의할 수 있습니다.
void add(int p1 = 10, int p2 = 20, int p3 = 30); //가능
void add(int p1, int p2 = 20, int p3 = 30); //가능
void add(int p1, int p2, int p3 = 30); //가능
void add(int p1 = 10, int p2 = 20, int p3); //불가능
void add(int p1 = 10, int p2, int p3 = 30); //불가능
이 디폴트 매개변수는 정말 많이 쓰는 기법이고 익히기 쉬우므로 필수로 알고 있어야합니다.
예를 들어 선분을 그리는 drawLine()이란 함수를 만들 때,
void drawLine(int x1, int y1, int x2, int y2 //점 좌표
int width = 1, int style=SOLID, //선 두께, 선 스타일
int r=255, int g=255, int b=255); //색상
이렇게 매개변수가 많은 함수에서도,
디폴트값이 지정되면 다음과 같이 필요한 부분까지만 인수를 넣어 호출할 수 있습니다.
drawLint(10, 10, 20, 20); // 선만 그리고 싶은 사람은 위치만 지정하면 됌
drawLint(10, 10, 20, 20, 2);
drawLint(10, 10, 20, 20, 3, DASH);
drawLint(10, 10, 20, 20, 3, SOLID, 255, 0, 0); //모두다 지정