I am saying that the destructor is called. But for some reason, when I do

Code:
Complex a, b;
cout<<a+b<<endl; //after assigning values to a and b
It is called after the result is displayed. When the code is as follows:

Code:
Matrix A, B;
cout<<A*B<<endl; //after assigning values to A and B
the destructor is called before A*B is displayed, so that part is essentially blank.