// GROUPS passed constructors #include #include #include #define MAGIC 7654 class complex { double re; double im; int magic; static int count; public: complex() { re=im=0; magic=MAGIC; } complex(double d) { re=d; im=0; magic=MAGIC; } complex(double d, double d2) {re=d; im=d2; magic=MAGIC; } ~complex() {if(magic!=MAGIC) {std::printf("FAIL\n"); std::exit(1);}} friend std::ostream& operator << (std::ostream& o, const complex& c) { return o << "(" << c.re << "," << c.im << ")"; } }; int complex::count=0; int main() { complex v[6] = {1, complex(1,2), complex(), 2 }; // ARM Sect. 12.6.1 int i; // page 289 for(i=0; i<6; i++) ; std::printf ("PASS\n"); return 0; }