/** * This is a sample fix to one of the section exercises. IntArrayList would also * have to be fixed accordingly. */ #include #include "./IntArrayList.h" #include class Wrap { public: Wrap() : p_(nullptr) {} Wrap(IntArrayList *p) : p_(p) {} IntArrayList *p() const { return p_; } private: IntArrayList *p_; }; struct List { IntArrayList v; }; int main() { Wrap a; std::cout << "Line 0" << std::endl; IntArrayList *tmp = new IntArrayList; std::cout << "Line 1" << std::endl; Wrap b(tmp); std::cout << "Line 2" << std::endl; struct List c { }; std::cout << "Line 3" << std::endl; struct List d { *b.p() }; std::cout << "Line 4" << std::endl; delete d; std::cout << "Line 5" << std::endl; Wrap *f = new Wrap(&d.v); std::cout << "Line 6" << std::endl; struct List *g = new struct List; std::cout << "Line 7" << std::endl; tmp = new IntArrayList; std::cout << "Line 8" << std::endl; delete &g->v; std::cout << "Line 9" << std::endl; g->v = *tmp; std::cout << "Line 10" << std::endl; delete f; std::cout << "Line 11" << std::endl; delete tmp; std::cout << "Line 12" << std::endl; return 0; }