その行が何を意味するのか本当に理解していないので、それよりも良いタイトルを考えることはできません。つまり、関数内のwhileループにあり、ここでも次のようになります。
Object* foo(0);
それがポインタ変数の宣言である場合、それは世界で何(0)
ですか?実際には、foo
次のように、数行後に変数として使用されます。foo=new Something;
へのポインタを初期化していますNULL
。
に相当:
Object* foo = NULL;
また
Object* foo = 0; // since NULL is defined as 0
ポインタを宣言し、Object
0(NULL)で初期化します。
これは、C++ が C でない場所の 1 つです。C++ では、
int i(47);
(少なくともこのコンテキストでは) 以下と同等です。
int i = 47;
厳密にはi
of classというオブジェクトint
を構築し、コンストラクタを呼び出してオブジェクトを初期化します。そう、
Object * foo(0);
とまったく同じです
Object * foo = 0;
foo
クラス「pointer-to-Object」(ここでObject
は、 は型名であるため、実際にはオブジェクトではなくクラスです) と呼ばれるオブジェクトを構築し、コンストラクターを使用して新しいオブジェクトを初期化します。
//B