1*c87b03e5Sespie // GROUPS passed copy-ctors 2*c87b03e5Sespie #include <stdio.h> 3*c87b03e5Sespie 4*c87b03e5Sespie int pass = 0; 5*c87b03e5Sespie class name { 6*c87b03e5Sespie int namestuff; 7*c87b03e5Sespie public: name()8*c87b03e5Sespie name() { 9*c87b03e5Sespie namestuff = 111; 10*c87b03e5Sespie } 11*c87b03e5Sespie name(const name& subject); 12*c87b03e5Sespie 13*c87b03e5Sespie name & operator = (const name& right) { 14*c87b03e5Sespie this->namestuff = right.namestuff; 15*c87b03e5Sespie return *this; 16*c87b03e5Sespie } 17*c87b03e5Sespie ~name()18*c87b03e5Sespie ~name() { 19*c87b03e5Sespie ; 20*c87b03e5Sespie } 21*c87b03e5Sespie }; 22*c87b03e5Sespie name(const name & subject)23*c87b03e5Sespiename::name(const name& subject) { 24*c87b03e5Sespie pass = 1; 25*c87b03e5Sespie } 26*c87b03e5Sespie 27*c87b03e5Sespie class person { 28*c87b03e5Sespie int personstuff; 29*c87b03e5Sespie name personname; 30*c87b03e5Sespie public: person()31*c87b03e5Sespie person() { 32*c87b03e5Sespie ; 33*c87b03e5Sespie personstuff = 222; 34*c87b03e5Sespie } ~person()35*c87b03e5Sespie ~person() { 36*c87b03e5Sespie ; 37*c87b03e5Sespie } print()38*c87b03e5Sespie void print() { 39*c87b03e5Sespie ; 40*c87b03e5Sespie } 41*c87b03e5Sespie 42*c87b03e5Sespie }; 43*c87b03e5Sespie 44*c87b03e5Sespie void test(person argp)45*c87b03e5Sespietest(person argp) 46*c87b03e5Sespie { 47*c87b03e5Sespie person testp; 48*c87b03e5Sespie 49*c87b03e5Sespie ; 50*c87b03e5Sespie argp.print(); 51*c87b03e5Sespie testp = argp; 52*c87b03e5Sespie argp.print(); 53*c87b03e5Sespie testp.print(); 54*c87b03e5Sespie ; 55*c87b03e5Sespie } 56*c87b03e5Sespie main()57*c87b03e5Sespieint main() 58*c87b03e5Sespie { 59*c87b03e5Sespie person mainp; 60*c87b03e5Sespie test(mainp); 61*c87b03e5Sespie if (pass) 62*c87b03e5Sespie printf ("PASS\n"); 63*c87b03e5Sespie else 64*c87b03e5Sespie { printf ("FAIL\n"); return 1; } 65*c87b03e5Sespie } 66*c87b03e5Sespie 67