オブジェクトのインスタンス化: 'new' と非 'new'
メモリ割り当て以外に、次の行の間にどのような機能的な違いがありますかコードの数は?
Time t (12, 0, 0); //t is a Time object Time* t = new Time(12, 0, 0);//t is a pointer to a dynamically allocated Time object
「新規」ではないインスタンス化
最初の行 Time t (12, 0, 0); は、ローカル スコープで Time 型の変数 t を作成します。この変数は通常、スタック上に割り当てられ、そのスコープの終わりに破棄されます。
'new' Instantiation
対照的に、2 行目の Time* t = new Time(12, 0, 0);、::operator new() またはTime::operator new() 関数。次に、このメモリ ブロックは、新しく割り当てられたメモリのアドレスを this ポインタとして設定し、Time::Time() コンストラクタを使用して初期化されます。割り当てられたメモリへのポインタは、変数 t に格納されます。
その他の違い
主な違いはメモリ割り当てにありますが、他にもいくつかの微妙な違いがあります。
以上が「new」オブジェクトと「new」以外のオブジェクトのインスタンス化: 主な機能の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。