디폴트 인자
함수의 인자는 호출시 값을 넣어주어야 한다. (nullptr 넣으면 에러가 발생한다)
하지만 함수의 디폴트 인자를 사용하게 되면 값을 넣어주어도 되고 안 넣어주어도 된다.
함수의 디폴트 인자는 함수의 인자에 이 인자가 가질 기본값을 정의해주어서
외부에서 함수를 호출할때 값을 넣어주면 해당 값으로 설정을 하고 값을 비워두면 기본값으로 설정이 되게 된다.
디폴트 인자는 함수의 인자중 가장 오른쪽부터 설정해야 한다.
오른쪽 인자가 디폴트 인자가 아니고 왼쪽 인자가 디폴트인자일 경우 에러가 발생한다.
함수오버로딩 시에 디폴트 인자를 잘못 사용하면 오버로딩에 문제가 발생할 수 있다.
위의 함수와 아래의 함수는 두 함수 모두 인자 1개만 넣어주어도 동작이 되기 때문에,
함수를 호출시 인자를 1개만 넣어서 호출하게 되면 둘 중 어떤 함수를 동작시켜야할지 판단을 할 수 없기 때문에 에러가 발생한다.
정적변수
변수 타입 앞에 static 을 붙여주면 해당 변수는 정적변수가 된다.
정적변수는 처음 한번만 초기화가 되고 그 다음부터는 초기화 코드가 무시된다.
정적변수는 초기화를 안하면 자동으로 0으로 초기화가 된다.
정적변수는 지역변수에 static을 붙여서 만들어주어도 해당 함수가 종료되면 메모리가 제거되지 않고 프로그램이 종료될때까지 유지가 되고 프로그램이 종료가 되어야 메모리에서 제거가 된다.
'C++ 문법' 카테고리의 다른 글
#define, 재귀함수, 꼬리재귀함수 (0) | 2022.04.12 |
---|---|
메모리 영역, 함수 포인터 (0) | 2022.04.11 |
전역변수, 함수의 오버로딩 (0) | 2022.04.11 |
함수 (0) | 2022.04.11 |
구조체 struct, 레퍼런스 (0) | 2022.04.11 |