C でのコンストラクター呼び出しについて
C では、コンストラクターは、クラスのオブジェクトの作成時に自動的に実行される特別なメンバー関数です。これらは、オブジェクトのデータ メンバーを初期化する役割を果たします。
問題
次のコード スニペットを考えてみましょう:
#include <iostream> using namespace std; class Class { public: Class() { cout << "default constructor called" << endl; } ~Class() { cout << "destructor called" << endl; } }; int main() { Class object(); // Incorrect syntax }
main() 関数Class クラスのオブジェクトを作成しようとします。ただし、コンストラクターは期待どおりに呼び出されません。
原因
問題は、オブジェクト宣言で使用されている間違った構文にあります:
Class object();
この行は、Class オブジェクトを返す object() という名前の関数を宣言します。クラス Class のオブジェクトを正しく作成するには、次の構文を使用する必要があります。
Class object;
解決策
クラス名の後の括弧を削除することで、適切に作成できます。 Classクラスのオブジェクトを宣言します。このオブジェクトは、期待どおり、デフォルトのコンストラクターを正しく呼び出します。
追加メモ
以上がC クラス オブジェクトを正しくインスタンス化し、そのコンストラクターを呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。