template <class T>
class List {
public:
void method() {}
};
template <class T>
class Hash {
protected:
List<T> *list;
public:
int index() { return 0; }
void function();
};
template <class T>
void Hash<T>::function() {
list[index()].method();
}
int main() { return 0; }