エラー: 非クラス型 '非クラス型' のメンバーを要求しています
C でオブジェクトを宣言するときは、両方のコンストラクターの構文が正しいこと。提供されたコードでは、引数なしのコンストラクターを使用してオブジェクトを作成しようとすると、エラーが発生します:
Foo foo2();
この構文は関数宣言に似ているため正しくありません。そのため、コンパイラーはそのように解釈します。 。引数なしのコンストラクターを使用したオブジェクト宣言の正しい構文は次のとおりです。
Foo foo2;
括弧を削除すると、コンパイラーは foo2 をクラス Foo のオブジェクトとして正しく認識します。
あるいは、次の場合わかりやすくするために括弧を使用したい場合は、コンストラクター引数が含まれていることを確認してください:
Foo foo2(1); // Explicitly pass the default argument of 1 to the no-argument constructor
以上がC コンストラクター構文: `Foo foo2();` がエラーを引き起こすのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。