** Called constructor 2 3 Original value of num1 is 2 + 3i ** Called constructor 9 9 Original value of num2 is 9 + 9i ** Called operator+ ** Called constructor 0 0 Num1 is now 11 + 12i ** Called operator+ ** Called constructor 0 0 Num1 is now 22 + 24i Now print two numbers Num1 is 22 + 24i and num2 is 9 + 9i ** Called operator== Num1 == num1? : true ** Called operator== num1 and num2 are not equal ** Called operator++ (pre-increment) 23 + 25i Num1 has real part ** Called operator[] non-const 0 23 and imag part ** Called operator[] non-const 1 25 ** Called operator[] non-const 0 ** Called operator[] non-const 1 9 + 8i Num2 has real part ** Called operator[] const 0 9 and imag part ** Called operator[] const 1 9