// File: des13.C // // The dangers of destructors, part 13 // // Using copy constructor, overloading the assignment operator and // passing/returning an object by value. #include #include #include "string.h" #include "record3.h" Record foo(Record T) { Record R = Record("R") ; printf("\nIdentify T: ") ; T.id() ; printf("\nIdentify R: ") ; R.id() ; return R ; } main() { Record S("S") ; Record P ; char *str1, *str2 ; printf("Identify S: ") ; S.id() ; printf("\nDo Assignment\n") ; P = foo(S) ; printf("Finished Assignment\n\n") ; str1 = strdup("Hello") ; printf ("str1=(%p,\"%s\")\n", str1, str1) ; str2 = strdup("World") ; printf ("str2=(%p,\"%s\")\n", str2, str2) ; printf("Identify S: ") ; S.id() ; printf("Identify P: ") ; P.id() ; printf("\n\nEnd of main()\n\n") ; }