ホームページ >バックエンド開発 >C++ >C プログラムが「引数のないコンストラクター」エラーをスローするのはなぜですか?

C プログラムが「引数のないコンストラクター」エラーをスローするのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-17 17:45:01294ブラウズ

Why Does My C   Program Throw a

「引数のないコンストラクター」エラーについて

Cygwin で g を使用して引数のないコンストラクターで C プログラムをコンパイルすると、不可解なエラー メッセージ「エラー: 'myObj' のメンバー 'function1' に対する要求。これは非クラス型 'MyClass ()()'」です。

このエラーは、次のような誤解に起因します。 C のコンストラクター宣言の構文。言語標準によれば、「MyClass myObj();」というあいまいな構文は使用されません。オブジェクト定義または関数宣言として解釈できます。ただし、標準では、関数宣言の解釈を優先することでこの曖昧さを解決しています。

したがって、このエラーを回避するには、次のようにかっこなしでオブジェクトを明示的に宣言する必要があります。

MyClass myObj;

この宣言"myObj" は関数宣言ではなく、型 "MyClass" のオブジェクトであることを明確にします。

要約すると、コンパイラがオブジェクト宣言の構文を誤って解釈し、それを次のように解決すると、エラー "引数のないコンストラクタ" が発生します。関数宣言。このエラーを防ぐには、引数のないコンストラクターのオブジェクトを必ずかっこなしで宣言してください。

以上がC プログラムが「引数のないコンストラクター」エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。