Class Templates (parameterized classes
Class Templates (parameterized classes)
Motivations: class list i public: Listo / constructor List(const list& list) copy constructor list oi // destructor bool empty()const // boolean function int head( consti 7 access functions void add (int newdata // add to the head void delete( // delete the head private: List of integer, list of doubles, list of characters, list of objects
class List { public: List(); // constructor List(const list& list); // copy constructor ~List(); // destructor bool empty() const; // boolean function int head() const; // access functions void add(int newdata); // add to the head void delete(); // delete the head private: … }; Motivations: List of integer, list of doubles, list of characters, list of objects …
class list i public: Listo / constructor List(const list& list) copy constructor list oi // destructor bool empty()const // boolean function T head( consti // access functions void add(t newdata) // add to the head void delete( // delete the head private:
class List { public: List(); // constructor List(const list& list); // copy constructor ~List(); // destructor bool empty() const; // boolean function T head() const; // access functions void add(T newdata); // add to the head void delete(); // delete the head private: … };
template<typename T> class list i public: Listof List(const List& list)i ~1ist(); bool empty()consti T head consti void add(r newdata)i void delete()i private: T* head };
template<typename T> class List { public: List(); List(const List& list1); ~list(); bool empty() const; T head() const; void add(T newdata); void delete(); private: T* head; };
Implementation Some simple member functions template< typename T≥ List:: List(i head=Null size=o templatestypename T> bool List:: empty( const i templatestypename T≥ T List:: head( const i
template<typename T> List::List(){ head=NULL; size=0; } template<typename T> bool List::empty() const{ } template<typename T> T List::head() const { } Some simple member functions: Implementation