언제 사용해야합니까? 기본 매개 변수? 적절한 구문은 무엇이며 어디에서 사용해야합니까? 정기적으로 좋은 습관이나 나쁜 습관을 사용하고 있습니까? 효율성에 영향을 줍니까?기본 매개 변수의 사용은 건강한 습관입니까 아니면 나쁜 매개 변수의 사용입니까?
답변
큰 경우를 기본 매개 변수로 포함시키지 만 호출자가 사용하지 않는 경우 효율성에 영향을주는 부분 만 생각하면됩니다. 예를 들면 :
#include <iostream>
void foo(std::ostream& out=std::cout) {
out << "foo";
}
발신자의 아무도는 수도 실행 파일의 크기 (및 컴파일 시간을 증가, 그것은 헛된에 포함 된 것입니다 다음 <iostream>
필요하지 않습니다 기본 매개 변수, 프로그램의 나머지 부분을 사용하지 않는 경우 또는별로 중요하지 않을 수도 있음).
적절한 구문은 C++ 참조에서 찾을 수 있습니다. http://msdn.microsoft.com/en-us/library/91563f79.aspx. 효율성에 영향을 미치지 않아야합니다. 사용 힌트는 다른 모든 경우와 마찬가지로 특정 사례에 따라 다릅니다. 그들은 물건을 개간하거나 더 복잡하게 만들 수 있습니다. 언급 할 가치가있는 또 하나의 점은 예상치 못한 정적 유형을 기반으로 값이 결정되므로 가상 함수의 기본 매개 변수에주의해야합니다.
MSDN에 C++ 참조를 호출하지 않습니다. –
: 파라미터리스트에서만 최종 파라미터 default- 가질 수
void fun(int value = 0);
참고 값. 예 : 다음은 금지되어 있습니다 :
void fun(int v1 = 0, int v2);
이 기능이 다른 곳에 정의되어 있으면 기본값을 생략해야합니다.
void fun(int value)
{
cout << value << '\n'; // will print 0 when nothing was passed by the user
}
그들은 사용자가이를 지정하지 않은 경우 컴파일러는 함수 호출이 값을 추가 할 것 같은 하지는 어떤 방법으로 런타임 오버 헤드가 않습니다. 특정 기본 동작이 직관적 일 때만 사용하십시오.
때때로 함수 오버로딩 대신 사용할 수 있습니다. 위의 예제의 효과는
void fun();
void fun(int value);
의해 달성 될 수 있었다 그러나 이것은 당신이 (fun()
그냥 fun(0)
를 호출하는 경우)를 두 번 fun
을 구현해야 할 것을 의미한다.
- 1. URL 매개 변수의 기본 라우팅
- 2. 함수 매개 변수의 차이점
- 3. sqlplus 매개 변수의 범위
- 4. Yii2와 매개 변수의 관계
- 5. 함수 매개 변수의 템플릿
- 6. mod_rewrite - 매개 변수의 폴더
- 7. 매개 변수의 기본값을 지정하십시오.
- 8. 매개 변수의 값을 캡처
- 9. VBA의 매개 변수의 스와핑
- 10. 해석 매개 변수의 메서드
- 11. 매개 변수의 사전
- 12. Sql 매개 변수의 오류
- 13. 텍스처 매개 변수의 지속성
- 14. 매개 변수의 함수 포인터
- 15. 라인 매개 변수의 크기
- 16. URL 매개 변수의 공간
- 17. PDO - 매개 변수의 변수와
- 18. Function 매개 변수의 연산자?
- 19. 전달 매개 변수의 ReportViewer
- 20. 매개 변수의 기본값으로 집계
- 21. 경로 매개 변수의 일부로 &
- 22. 매개 변수의 대안은 무엇입니까?
- 23. RNNlib의 매개 변수의 의미
- 24. 문자열 매개 변수의 정규식!
- 25. API 매개 변수의 하이픈
- 26. mybatis 매개 변수의 문제점
- 27. 매개 변수의 이름이 모델이어야합니까?
- 28. Java : 매개 변수의 객체
- 29. 쉘 매개 변수의 제한
- 30. 매개 변수의 C++ 공분산
이 사이트를 참조하십시오. 아주 명확한 설명. http://www.learncpp.com/cpp-tutorial/77-default-parameters/ –
정상입니다. 기본 매개 변수를 사용하지 않으려는 경우. 함수를 재정의해야합니다. – billz
@billz : 과부하. –