V v(10,0);
コンパイラは、コールスタック(ないヒープ)の上にいくつかの領域を割り当て、その後、オブジェクトを構築するために、メモリ内のその場所にV(int,int)
コンストラクタを呼び出します。再び
....V(5,0).
:
v = V(5,0);
これは実際に私が分離ういくつかの部分であり、コンパイラは、コールスタック(ないヒープ)の上にいくつかの領域を割り当て、その後にV(int,int)
コンストラクタを呼び出します。一時的な名前のないオブジェクトを作成するために、メモリ内に配置されます。
v = .......
コンパイラは、名前のv
オブジェクトにパラメータ(一時的な無名のV
)からの、おそらく内容をコピー、v.operator=(const V&)
メンバーを呼び出します。
..........;
式が終了したので、コンパイラは一時オブジェクトを破壊する~V
デストラクタを呼び出し、その後、(おそらく)後の再利用のためのコールスタック上のスペースを解放します。
ときにスコープが終了する(通常:関数が終了したとき)、コンパイラが自動的に命名
v
オブジェクトを破壊する
~V
デストラクタを呼び出し、その後、コールスタック上のスペースの割り当てを解除します。
[割り当て演算子](http://en.cppreference.com/w/cpp/language/operator_assignment)で読み上げるような音です。 – tadman