テンプレート基底クラスのヘッダーにポインタfirst , last & counterの宣言をしましたが、派生クラスの定義にheaderが含まれていると、first,last & counterがこのスコープで宣言されていないというエラーが発生します。ただし、最初、最後、およびカウンターを宣言するために使用したヘッダーは、派生クラスのヘッダーと実装ファイルに既に含まれています。
//template base class
template <class Type>
class linkedListType
{
.
.
.
protected:
int counter; //to store no. of elements in the list
nodeType<Type> *first; //pointer to first node
nodeType<Type> *last; //pointer to last node
}
//derived class header
#include "linkedListType.h"
using namespace std;
template <class Type>
class unorderedList:public linkedListType<Type>
{
public:
bool searchFor(const Type& searchItem) const;
void insertFirst(const Type& newItem);
void insertLast (const Type& newItem);
void deleteNode(const Type& deleteItem);
};
//derived class definition
template <class Type>
bool unorderedList<Type>::searchFor(const Type& searchItem) const
{
nodeType<Type> *current; //pointer to traverse the list
bool found = false;
current = first; //set current to point to first node
.
.
.
}