>백엔드 개발 >C++ >내 C 프로그램에서 '인수 없는 생성자' 오류가 발생하는 이유는 무엇입니까?

내 C 프로그램에서 '인수 없는 생성자' 오류가 발생하는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-17 17:45:01296검색

Why Does My C   Program Throw a

"인수 없는 생성자" 오류 이해

Cygwin에서 g를 사용하여 인수 없는 생성자로 C 프로그램을 컴파일하면 다음과 같은 비밀스러운 오류 메시지가 나타날 수 있습니다. "오류: 클래스가 아닌 'myObj'의 'function1' 멤버에 대한 요청입니다. type 'MyClass ()()'".

이 오류는 C의 생성자 선언 구문에 대한 오해로 인해 발생합니다. 언어 표준에 따르면 모호한 구문 "MyClass myObj();" 객체 정의나 함수 선언으로 해석될 수 있습니다. 그러나 표준에서는 함수 선언 해석의 우선순위를 지정하여 이러한 모호성을 해결합니다.

따라서 이 오류를 방지하려면 다음과 같이 괄호 없이 개체를 명시적으로 선언해야 합니다.

MyClass myObj;

이 선언 "myObj"는 함수 선언이 아니라 "MyClass" 유형의 개체임을 명시합니다.

요약하면 오류 "인수 없는 생성자"는 컴파일러가 개체 선언 구문을 잘못 해석하여 이를 함수 선언으로 해결할 때 발생합니다. 이 오류를 방지하려면 인수가 없는 생성자에 대해 괄호 없이 개체를 선언해야 합니다.

위 내용은 내 C 프로그램에서 '인수 없는 생성자' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.