everest% CC -DNDEBUG genlist.C intcell.C stringcell.C bstring3.C main2.C genlist.C: intcell.C: stringcell.C: bstring3.C: main2.C: everest% everest% a.out 5 Hello World 11 length = 4 Hello World 11 Hello World 11 17 foo Removed item: Hello World 11 17 foo ListCell id(): 0x10017b00 IntCell id(): 0x10017b04 StringCell id(): 0x10017b08 everest% everest% CC genlist.C intcell.C stringcell.C bstring3.C main2.C genlist.C: intcell.C: stringcell.C: bstring3.C: main2.C: everest% everest% a.out ListCell: Base default constructor, this=0xffffffacb0 GenList constructor, this = 0xffffffacb0 ListCell: Base default constructor, this=0xffffffacd0 IntCell: constructor, this=0xffffffacd0 ListCell: Base default constructor, this=0x10018618 IntCell: constructor, this=0x10018618 IntCell: destructor, this=0xffffffacd0 ListCell: Base destructor, this=0xffffffacd0 ListCell: Base default constructor, this=0xfffffface8 StringCell: alternate constructor, this=0xfffffface8 StringCell: destructor, this=0xfffffface8 BString: destructor, this=0xffffffacf8 ListCell: Base destructor, this=0xfffffface8 ListCell: Base default constructor, this=0xffffffad08 StringCell: alternate constructor, this=0xffffffad08 StringCell: destructor, this=0xffffffad08 BString: destructor, this=0xffffffad18 ListCell: Base destructor, this=0xffffffad08 ListCell: Base default constructor, this=0xffffffad28 IntCell: constructor, this=0xffffffad28 ListCell: Base default constructor, this=0x10018638 IntCell: constructor, this=0x10018638 IntCell: destructor, this=0xffffffad28 ListCell: Base destructor, this=0xffffffad28 IntCell: print function 5 StringCell: print function Hello StringCell: print function World IntCell: print function 11 length = 4 ListCell: Base default constructor, this=0xffffffad60 IntCell: constructor, this=0xffffffad60 IntCell: compare function IntCell: id function IntCell: destructor, this=0x10018618 ListCell: Base destructor, this=0x10018618 StringCell: compare function IntCell: id function IntCell: id function StringCell: compare function IntCell: id function IntCell: id function IntCell: compare function IntCell: id function StringCell: print function Hello StringCell: print function World IntCell: print function 11 ListCell: Base default constructor, this=0xffffffad78 IntCell: constructor, this=0xffffffad78 ListCell: Base default constructor, this=0x10018618 IntCell: constructor, this=0x10018618 IntCell: destructor, this=0xffffffad78 ListCell: Base destructor, this=0xffffffad78 ListCell: Base default constructor, this=0xffffffad90 StringCell: alternate constructor, this=0xffffffad90 StringCell: destructor, this=0xffffffad90 BString: destructor, this=0xffffffada0 ListCell: Base destructor, this=0xffffffad90 StringCell: print function Hello StringCell: print function World IntCell: print function 11 IntCell: print function 17 StringCell: print function foo Removed item: StringCell: print function Hello StringCell: print function World IntCell: print function 11 IntCell: print function 17 StringCell: print function foo StringCell: destructor, this=0x100187a8 BString: destructor, this=0x100187b8 ListCell: Base destructor, this=0x100187a8 ListCell: Base default constructor, this=0xffffffadb8 ListCell: Base default constructor, this=0xffffffadc8 IntCell: constructor, this=0xffffffadc8 ListCell: Base default constructor, this=0xffffffade0 StringCell: default constructor, this=0xffffffade0 ListCell id(): ListCell: id function 0x10017ed0 IntCell id(): IntCell: id function 0x10017ed4 StringCell id(): StringCell: id function 0x10017ed8 StringCell: destructor, this=0xffffffade0 BString: destructor, this=0xffffffadf0 ListCell: Base destructor, this=0xffffffade0 IntCell: destructor, this=0xffffffadc8 ListCell: Base destructor, this=0xffffffadc8 ListCell: Base destructor, this=0xffffffadb8 IntCell: destructor, this=0xffffffad60 ListCell: Base destructor, this=0xffffffad60 GenList destructor, this = 0xffffffacb0 StringCell: destructor, this=0x100187d0 BString: destructor, this=0x100187e0 ListCell: Base destructor, this=0x100187d0 IntCell: destructor, this=0x10018638 ListCell: Base destructor, this=0x10018638 IntCell: destructor, this=0x10018618 ListCell: Base destructor, this=0x10018618 StringCell: destructor, this=0x100187f8 BString: destructor, this=0x10018808 ListCell: Base destructor, this=0x100187f8 ListCell: Base destructor, this=0xffffffacb0 everest%