я пытаюсь понять порядок вызовов конструктора и деструктора при перезаписи объекта.
Мой код:
class A
{
public:
A(int n): x(n)
{ cout << "A(int " << n << ") called" << endl; }
~A( )
{ cout << "~A( ) with A::x = " << x << endl; }
private:
int x;
};
int main( )
{
cout << "enter main\n";
int x = 14;
A z(11);
z = A(x);
cout << "exit main" << endl;
}
-
Выход:
enter main
A(int 11) called
A(int 14) called
~A( ) with A::xx = 14
exit main
~A( ) with A::xx = 14
-
ПочемуA :: xx = 14 когда вызывается деструктор?Разве это не должно быть 11?