変数の初期化、定義、宣言

1289 ワード

1.C++は、レプリケーション初期化と直接初期化の2つの初期化変数の形式をサポートします.コピー初期化構文は等号(=)で、直接初期化は初期化式を括弧に入れます.
int iVal(1024);		//     
int iVall = 1024;	//     

C++の初期化は代入ではありません.初期化は変数を作成して初期値を割り当て、代入はオブジェクトの現在の値を消去して新しい値に置き換えます.
 
2.変数の初期化ルール
(1).組み込み型変数の初期化
組み込み型変数が自動的に初期化されるかどうかは、変数定義の場所によって異なります.関数体外で定義された変数はすべて0に初期化され、関数体内で定義された内蔵型変数は自動初期化されません.未初期化変数によるエラーは発見しにくく、未定義の動作に依存しないでください.
各組み込みタイプのオブジェクトを初期化することをお勧めします.これは必ずしも必要ではありませんが、初期化式を無視してもリスクがないと判断しない限り、より容易で安全です.
(2)クラス型変数の初期化
クラスは、1つ以上のコンストラクション関数を定義することによって、クラスオブジェクトの初期化を制御します.ほとんどのクラスでは、デフォルトのコンストラクション関数が提供されています.クラスにデフォルトのコンストラクション関数がある場合、クラスの変数を明示的に初期化することなく定義できます.デフォルトのコンストラクション関数がないタイプもあります.これらのタイプでは、各定義に表示される初期化式が必要です.
 
3.宣言と定義
変数の定義は、変数に記憶領域を割り当てるために使用されます.また、変数に初期値を指定することもできます.変数には定義が1つしかありません.
変数の宣言は、変数のタイプと名前をプログラムに示すために使用されます.定義も宣言です.変数を定義するときに、そのタイプと名前を宣言します.定義ではなくexternキーワードで変数名を宣言できます.
extern int i;	//      
int j;		//      

extern宣言は定義ではなく、ストレージスペースも割り当てません.プログラムでは、変数を複数回宣言できます.
宣言に初期化式がある場合は、宣言がexternとマークされている場合でも定義として使用できます.
extern int jjj = 10;	//      

初期化式は、extern宣言が関数の外部にある場合にのみ使用できます.このとき定義として、再定義することはできません.繰り返し宣言することができます.
C++では、変数は一度だけ定義する必要があり、変数を使用する前に変数を定義または宣言する必要があります.