I’m pretty new to C++ and this site so there are bound to be errors. When I try to compile my code I get errors like error: missing template argument before 'b'
. I’ve been searching the world for answers for hours and it has led me here.
My assignment is to implement a templated class Collection that stores a collection of Objects using an array, along with the current size of the collection.
#include <iostream> #include "collection.h" using namespace std; v int main(int argc, char* argv[]) { collection b; //<----error missing template argument before 'b' return 0; }
#ifndef COLLECTION_H #define COLLECTION_H #include <iostream> template <typename obj> class collection { public: collection(); bool isEmpty() const; void makeEmpty(); void insert(obj val); void remove(obj val); bool contains(obj val) const; private: size_t size; obj* col[]; }; #endif
#include "collection.h" template <typename obj> collection<obj>::collection() :size(10) { col = new obj*[size]; } template <typename obj> bool collection<obj>::isEmpty() const { for(size_t k = 0; k < size; k++) { if(col[k] != NULL) return false; } return true; } template <typename obj> void collection<obj>::makeEmpty() { for(size_t k = 0; k < size; k++) { col[k] = NULL; } } template <typename obj> void collection<obj>::insert(obj val) { int temp = 0; for(size_t s = 0; s < size; s++) { if(col[s] != NULL)