|
Параметризованные функции классов Параметризованные функции классов определяются так же (разве что вам понадобится больше угловых скобок < и >). Давайте модифицируем класс ListNode так, чтобы его функции не определялись при объявлении класса. template <class Type> class ListNode { private: ListNode<Type*> next; Type* data; public: ListNode(Type* d, ListNode<Type>* n = NULL); ~ListNode(); Type* Data(); ListNode<Type>* Next(); }; template <class Type> ListNode<Type>::ListNode(Type* d, ListNode<Type>* n = NULL) : next(n), data(d) { } template <class Type> ListNode<Type>::~ListNode() { delete next; } template <class Type> Type* ListNode<Type>::Data() { return data; } template <class Type> ListNode<Type>* ListNode<Type>::Next() { return next; } Помните: все это должно находиться в файле .h. Исключение составляют ситуации, когда функции класса вызываются только из файла .срр, в котором они определяются. В этом случае определения функций класса должны предшествовать их первому использованию. |
Copyright 2005. Климов Александр. All Right Reserved.