/* Note that we just declare the struct here in order to keep it private. * Users can only create pointers to it by calling our constructor vector_create. * Users must themselves remember to call the destructor vector_delete. * Users must alwas pass a pointer (this) to the current object as first parameter. */ struct vector; /* Note how the header file only list the public member functions, the ones named vector_ */ struct vector* vector_create(int init_size); void vector_push_back(struct vector* me, int val); int vector_at(struct vector* me, int index); void vector_delete(struct vector* me);