初期化(プログラミング)

フリー百科事典ウィキペディアより
ナビゲーションにジャンプ 検索にジャンプ

コンピューター プログラミングでは初期化(または初期化) は、データ オブジェクトまたは変数の初期値の割り当てです。初期化の実行方法は、プログラミング言語、および初期化するオブジェクトのタイプ、ストレージ クラスなどによって異なります。初期化を実行するプログラミング構造は、通常、初期化子および初期化子リストと呼ばれます。初期化は 宣言 とは異なります (そして宣言が先行します)が、この 2 つは実際には混同されることがあります。初期化の補完はファイナライズです、主にオブジェクトに使用されますが、変数には使用されません。

初期化は、コンパイル時に値を静的に埋め込むか、実行時に代入することによって行われます。このような初期化を実行するコードのセクションは、一般に「初期化コード」として知られており、ファイルを開くなど、1 回限りの他の機能を含む場合があります。オブジェクト指向プログラミングは、初期化コードはコンストラクター(クラス メソッド) または初期化子(インスタンス メソッド) の一部である場合があります。メモリ位置を16 進数のゼロに設定することは、「クリア」とも呼ばれ、多くの場合、マシン コードで排他的 or命令 (両方のオペランドで同じ変数を指定)によって実行されます。追加のメモリアクセスを必要としないためです。

C言語ファミリー

初期化子

C/C99/C++ では、初期化子は宣言子のオプションの部分ですこれは、'=' 文字とそれに続く、または中かっこ (中かっこ) で囲まれたコンマ区切りの式のリストで構成されます。後者のリストは、「初期化リスト」または「初期化リスト」と呼ばれることもあります (ただし、「初期化リスト」という用語は、C++ のクラス/構造体メンバーの初期化のために正式に予約されています。以下を参照してください)。データ オブジェクトの存在を単に記述するのではなく、データ オブジェクトを作成する宣言は、一般に定義と呼ばれます

多くの人は、「宣言」と「定義」という用語を区別するのが便利だと考えています。これは、「宣言定義の区別...」という一般的に見られるフレーズのように、宣言が単にデータ オブジェクト (または関数) を指定するだけであることを意味します。 )。実際、C++ 標準によれば、定義宣言です。それでも、「宣言と定義」という用法は、正式には正しくありませんが、一般的です。[1]すべての定義は宣言ですが、すべての宣言が定義であるとは限りません。

C の例:

int i = 0 ;   
int k [ 4 ] = { 0 , 1 };    
char tx [ 3 ] = 'a' ;   
char ty [ 2 ] = 'f' ;   
struct  Point { int x ; int y ;} p = { . 13、._ x = 7 };              

C++ の例:

int i2 ( 0 ); 
int j [ 2 ] = {ランド(), k [ 0 ]};    
MyClass * xox = new MyClass ( 0 , "ザザ" );     
ポイントq = { 0 , i + 1 };      

初期化リスト

C++ では、クラス/構造体のコンストラクターは、定義内でコンストラクター本体の前に初期化子リストを持つことができます。初期化リストを使用する場合、値は変数に割り当てられないことに注意してください。それらは初期化されます。以下の例では、re と im に 0 が初期化されます。例:

構造体 IntComplex { 
  IntComplex () : re ( 0 ), im ( 0 ) {}    

  インタレ; _ 
  int im ; 
};

ここで、構文  : re(0), im(0)は初期化子リストです。

「初期化子リスト」という用語は、配列または構造体初期化子の式のリストを参照するために使用されることもあります。

C++11は、 std::initializer_listと呼ばれるテンプレートを使用して、初期化子リストのより強力な概念を提供します

デフォルトの初期化

データの初期化は、プログラムで明示的な構文を使用せずに行うことができます。たとえば、静的変数 が初期化子なしで宣言されている場合、プリミティブ データ型の変数は対応する型の値 0 で初期化されますが、クラス型の静的オブジェクトはデフォルトのコンストラクターで初期化されます。

も参照

参考文献

  1. ^ C++ FAQs、Cline、Lomow、および Girou 共著、Addison-Wesley、1999 年、 ISBN  0-201-30983-1
https://en.wikipedia.org/w/index.php?title=初期化_ (プログラミング)&oldid=1098062027 」より取得