티스토리 뷰

MyMethod(int a, int b=0)


MyMethod(); // Error

MyMethod(1) // a=1, b=0

MyMethod(1,2) // a=1, b=2



MyMethod(int b=0, int a)


MyMethod(); // Error

MyMethod(1) // a=1, b=0

// b=1, a=?

MyMethod(1,2) // b=1, a=2



문법적으로 편의를 위해서, 선택적 매개 변수를 오른쪽으로 모은다.


구현 상에서 보면, 매개변수들은 스택에 하나씩 순서대로 들어간다.


C#이나 Java, C++ 에서는 왼쪽 매개 변수부터 스택에 들어간다. (C는 오른쪽 매개변수부터 스택에 들어간다.)


만일 앞에서 선택적 매개변수가 있으면 넣을 수 없는 경우가 생긴다.