// File: des08.C // // The dangers of destructors, part 8 // // Using pointers solve all of our problems, but is awkward #include #include #include "string.h" #include "record2.h" Record *foo(Record *T) { Record *R ; R = new Record("R") ; printf("\nIdentify T: ") ; T->id() ; printf("\nIdentify R: ") ; R->id() ; return R ; } main() { Record *S ; Record *P ; char *str1, *str2 ; S = new Record("S") ; 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("\nDestroy all: \n") ; delete S ; delete P ; printf("\n\nEnd of main()\n\n") ; }