通信用語の基礎知識 全国のICカードこれひとつ 戻る

通常PC用 / 人気 更新 今日 カテ
電子計算機 > 仕様・構造 > ソフトウェア > プログラミング言語 > 言語仕様 > 予約語・関数など
new
辞書:電算用語の基礎知識 プログラミング仕様編 (PTPROGS)
読み:ニュー
外語:new
品詞:名詞

C++/Java/C#などの予約語の一つ。オブジェクトを作成し、コンストラクターを呼び出す演算子。

目次
概要

ヒープなどにインスタンスを確保し、オブジェクトのポインター(C++の場合)や参照(Javaの場合)を返す演算子である。

C++では、実行時のオブジェクトの生成はスタックヒープに対して行なえるが、Javaでは常にヒープに生成する。

作成されたインスタンスは、C++ではdelete演算子で自発的に解放し、Javaではガベージコレクションにより自動的に解放する。

特徴
C++

C++では、newはポインターを返す。よくある使い方では、ポインター変数で受け取って利用することになる。

Hoge *hoge = new Hoge();

C++ではnew/delete演算子を用いるため、Cで必要だったmalloc()/free()を用いる場面は殆どなくなった。

またmallocとは違い、newでは領域確保をした後、確保したものがクラスのインスタンスであれば続いてコンストラクターを呼び出す機能が利用できる。これらの理由により、C++でmalloc()/free()を用いる理由はほぼなくなった。

なお、もし領域確保に失敗した場合、std::bad_alloc例外を送出する。

Java

Javaでは、newはインスタンスを確保し、オブジェクトの参照を作成して返す。

Hoge hoge = new Hoge();

newで確保されたオブジェクトは、どこからも参照されなくなった時点で自動的に削除されるが、プログラマーが直接削除する術がない。C++と違って、delete相当の機能がない。

リンク
関連する用語
malloc
ガベージコレクション
delete

[再検索] [戻る]


通信用語の基礎知識検索システム WDIC Explorer Ver 7.04 (07-Mar-2021)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club
KisoDic