복잡한 구문 분석 오류: 생성자 인수에서 괄호의 수수께끼 풀기
암호적인 오류 메시지 "'function1' 멤버 요청"이 표시되는 경우 클래스가 아닌 유형 'MyClass ()()'인 'myObj'에서" C 프로그램을 컴파일하려고 시도하는 동안 개발자는 이 난해한 구문 분석 오류의 원인을 숙고할 수 있습니다. 문제의 소스 코드에는 인수가 없는 생성자가 있는 클래스가 포함되어 있으며 다음 줄을 사용하여 선언되었습니다.
MyClass myObj();
컴파일 프로세스를 실행하면 앞서 언급한 오류가 나타나 멤버 함수 'function1'을 사용할 수 없음을 나타냅니다. 'myObj'는 클래스가 아닌 유형으로 인식되므로 'myObj' 개체를 통해 액세스할 수 있습니다. 이 문제를 해결하기 위해 코드를 다음과 같이 수정합니다.
MyClass myObj;
이는 생성자 선언에 인수가 없으면 괄호를 생략해야 하는지에 대한 의문을 제기합니다. 괄호를 사용하는 빈 생성자 선언은 이전에 C에서 사용되었지만 언어 표준은 단호한 입장을 취했습니다. 제공된 코드와 같은 모호성은 함수 선언을 선호하여 일관되게 해결되었습니다.
주의하는 것이 중요합니다. 빈 괄호 이니셜라이저는 새 식 내에서 또는 값으로 초기화된 임시 개체를 생성하는 동안과 같은 특정 시나리오에서 허용됩니다. 그러나 인수가 없는 생성자 선언의 경우 표준에서는 괄호 생략을 엄격하게 규정합니다. 이는 명확성을 보장하고 구문 모호함으로 인해 발생할 수 있는 잠재적인 혼란을 방지합니다.
위 내용은 인수 없이 생성자 선언에 괄호를 사용할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!