このページでは、C言語や C++ における用語「オブジェクト」を説明します。そのほかに、オブジェクト指向の用語「オブジェクト」や、より一般的な意味での「オブジェクト」があります。
C言語や C++ において、プログラムの実行中、値を表現しているメモリ上の一部分のことです。
C言語の規格では、次のように定義されています。
その内容によって,値を表現することができる実行環境中の記憶域の部分。
参考 オブジェクトを参照する場合,オブジェクトは,特定の型をもっていると解釈してもよい
(JIS X 3010:2003 3.14 より)
つまり、値を表現していて、型を持っていて、メモリ上にあるものがオブジェクトです(C言語の用語で「記憶域」はメモリ領域のことです)。メモリ上にあるということは、メモリアドレスを使って(つまりポインタによって)その存在を示せるということでもあります。名前があるかどうかは問題ではなく、そのため変数とは異なるものといえます。
変数は、オブジェクトを参照するために名前を付けたものと捉えられます。変数を定義すると、メモリ上にオブジェクトが作られ、以降、そのオブジェクトを変数名を使って参照しています。
変数名を使った参照を、プログラミング一般では間接参照と呼ぶことがあります。ただし、C言語や C++ で間接参照といった場合は、ポインタや参照を使って、指し示している先にアクセスすることをいいます。
C++ ではオブジェクト指向プログラミングの機能が使えるため、オブジェクト指向における「オブジェクト」と混乱しますが、C++ 用語のオブジェクトは、C言語のオブジェクトを踏襲したものです。オブジェクト指向とは無関係なもの、たとえば int型の変数でもオブジェクトと呼べます。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |