2010-02-11 5 views
2

여기 함수 호출에서 내 질문에 인수가 있고 이미 특정 값으로 초기화되어 있습니다. 이 함수를 호출하고 그 기본값을 사용하는 절차는 무엇입니까? 아니면 코드를 문서화하는 방법 일뿐입니다. 다른 프로그래머에게 매개 변수의 값으로 사용할 것으로 예상되는 내용을 알려주는 것입니까? 고맙습니다.함수 인수가 함수 선언에서 이미 초기화되었습니다. C++

enum File 
{ 
    XML = 0, 
    PDF = 1, 
}; 

Char *SetSection(const File = XML); 
+0

여러 매개 변수와 함께 사용할 수도 있습니다. 그러나이 경우 매개 변수 _N_에 대한 기본값을 제공하면 모든 후속 매개 변수에 기본값을 제공해야합니다. 호출자는 적어도 _N_ - 1 인수를 제공해야합니다. – MSalters

답변

4

질문을 올바르게 이해하면 매개 변수없이 SetSection을 호출하면됩니다. 에

SetSection(); 

위의 호출이 (더 나은 용어의 부족에 대한) 번역됩니다 :이 경우

SetSection(XML); 
+0

정확히 내 질문이 무엇인지, 정말 끝내주는 재미있는 기능입니다. – DogDog

0

XML이 표준 매개 변수입니다. SetSection();으로 전화 할 수 있습니다 (단, SetSection(XML) 또는 SetSection(PDF)도 유효합니다). 당신이

SetSection(); 

를 호출 할 경우

1

대신 SetSection (XML)를 호출합니다. 이것은 선택적 매개 변수가 모든 매개 변수의 끝에 있어야하는 이유입니다. 충분한 매개 변수를 제공하지 않으면 기본값을 사용합니다.

3

매개 변수없이 함수를 호출 할 수있는 경우 기본값 인 XML이 사용됩니다.

2

Filedefault argument이다. 인수없이 SetSection()을 호출하면 File 인수가 선언에 지정된 기본값으로 설정됩니다.

0

선언에 표시되는 내용은 기본 인수 값입니다. 당신이 SetSection();를 호출하면

그것은 또한 SetSelection(PDF); 전화하거나 기본값을 대체 할 수있는 다른 유효한 매개 변수를 사용할 수 있습니다 SetSection(XML);

호출하는 것과 동일합니다.

매개 변수가없는 함수로 시작하여 코드 전체에 함수를 호출하는 증분 개발 결과가 표시 될 수도 있습니다. 그런 다음 PDF의 대체 파일 유형이 도입되었지만 프로토 타입이 기존 호출 사이트를 변경하지 않아도되는 기본값을 갖도록 변경되었습니다.

관련 문제