"인수 없는 생성자" 오류 이해
Cygwin에서 g를 사용하여 인수 없는 생성자로 C 프로그램을 컴파일하면 다음과 같은 비밀스러운 오류 메시지가 나타날 수 있습니다. "오류: 클래스가 아닌 'myObj'의 'function1' 멤버에 대한 요청입니다. type 'MyClass ()()'".
이 오류는 C의 생성자 선언 구문에 대한 오해로 인해 발생합니다. 언어 표준에 따르면 모호한 구문 "MyClass myObj();" 객체 정의나 함수 선언으로 해석될 수 있습니다. 그러나 표준에서는 함수 선언 해석의 우선순위를 지정하여 이러한 모호성을 해결합니다.
따라서 이 오류를 방지하려면 다음과 같이 괄호 없이 개체를 명시적으로 선언해야 합니다.
MyClass myObj;
이 선언 "myObj"는 함수 선언이 아니라 "MyClass" 유형의 개체임을 명시합니다.
요약하면 오류 "인수 없는 생성자"는 컴파일러가 개체 선언 구문을 잘못 해석하여 이를 함수 선언으로 해결할 때 발생합니다. 이 오류를 방지하려면 인수가 없는 생성자에 대해 괄호 없이 개체를 선언해야 합니다.
위 내용은 내 C 프로그램에서 '인수 없는 생성자' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!