// ============================================ // Week 8: Classes (I) (p. 11) class MyVector { int n; int* m; void init(int dim); void print(); }; void MyVector::init(int dim) { n = dim; m = new int[n]; for(int i = 0; i < n; i++) m[i] = 0; } void MyVector::print() { cout << "("; for(int i = 0; i < n - 1; i++) cout << m[i] << ", "; cout << m[n-1] << ")\n"; } int main() { MyVector v; v.init(5); delete [] v.m; return 0; } // ============================================ // Week 8: Classes (I) (p. 13) class MyVector { private: int n; int* m; public: void init(int dim); void print(); }; int main() { MyVector v; v.init(5); // fine v.n = 3; // compilation error! delete [] v.m; return 0; } // ============================================ // Week 8: Classes (I) (p. 18) class MyVector { private: int n; int* m; public: void init(); void init(int dim); void init(int dim, int value); void print(); }; void MyVector::init() { n = 0; m = NULL; } void MyVector::init(int dim) { init(dim, 0); } void MyVector::init(int dim, int value) { n = dim; m = new int[n]; for(int i = 0; i < n; i++) m[i] = value; } // ============================================ // Week 8: Classes (I) (p. 25) class MyVector { private: int n; int* m; public: MyVector(); MyVector(int dim, int value = 0); void print(); }; MyVector::MyVector() { n = 0; m = NULL; } MyVector::MyVector(int dim, int value) { n = dim; m = new int[n]; for(int i = 0; i < n; i++) m[i] = value; } // ============================================ // Week 8: Classes (I) (p. 26) int main() { MyVector v1(1); MyVector v2(3, 8); v1.print(); // (0) v2.print(); // (8, 8, 8) // memory leak return 0; } // ============================================ // Week 8: Classes (I) (p. 29) class A { public: A() { cout << "A\n"; } ~A() { cout << "a\n"; } }; class B { private: A a; public: B() { cout << "B\n"; } ~B() { cout << "b\n"; } }; int main() { B b; return 0; }