C에서 참조 매개변수의 기본값
C에서 매개변수를 참조로 전달할 때 기본값을 지정할 수 있나요?
다음 기능을 고려해보세요 선언:
virtual const ULONG Write(ULONG &State = 0, bool sequence = true);
이 코드를 컴파일하려고 하면 오류가 발생합니다.
error C2440: 'default argument' : cannot convert from 'const int' to 'unsigned long &' A reference that is not to 'const' cannot be bound to a non-lvalue
대답
기본값만 할당할 수 있습니다. 상수 참조가 아닌 상수 참조입니다. 이는 C가 상수가 아닌 참조에 임시(이 경우 기본값)를 바인딩하는 것을 금지하기 때문입니다.
이 제약 조건을 해결하려면 실제 인스턴스를 기본값으로 사용할 수 있습니다.
static int AVAL = 1; void f( int &x = AVAL ) { // stuff } int main() { f(); // equivalent to f(AVAL); }
그러나 이 방법은 실제 적용에 한계가 있습니다.
위 내용은 C 함수는 Non-Const 참조 매개변수에 대한 기본값을 가질 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!