ホームページ >バックエンド開発 >C++ >C コンストラクターが呼び出されないのはなぜですか?

C コンストラクターが呼び出されないのはなぜですか?

DDD
DDDオリジナル
2024-12-27 16:25:10255ブラウズ

Why Doesn't My C   Constructor Get Called?

コンストラクターが呼び出されないのはなぜですか?

提供された C コードでは、Class というクラスが、デフォルトのコンストラクターとデストラクターを使って定義されています。オブジェクトの作成時と破棄時のそれぞれのメッセージ。ただし、このクラスのインスタンスを作成しようとすると、main 関数にコンストラクター呼び出しが表示されません。代わりに、関数宣言が誤って宣言されてしまいます。

この問題を修正し、デフォルトのコンストラクターを適切に呼び出せるようにするには、Class object(); という行を追加します。 main 関数内の を Class オブジェクトに変更する必要があります。この変更により、 Class 型のオブジェクトが正しく宣言され、そのデフォルト コンストラクターの実行がトリガーされます。

さらに、この問題は、C の「最も厄介な解析」として知られる潜在的な落とし穴を示しています。この場合、パーサーは宣言 Class object(); を誤って解釈します。オブジェクト宣言の代わりに関数宣言として。これを防ぐには、オブジェクト宣言の後のセミコロンを削除する必要があります。

以上がC コンストラクターが呼び出されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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