>>556
ありがとうございます。

template <class T>
class A {
public:
  A(){}; ~A(){};
  struct S {
    long a;
    T   b;
  };
  S * TestFunc( S *p );
};
template <class T>
typename A<T>::S * A<T>::TestFunc( S *p ){
  return 0;
}
template <class T>
class B : public A<T> {
public:
  B(){}; ~B(){};
  struct S : A<T>::S {
    double c;
  };
  A<T>::S * TestFunc( A<T>::S *p );
};
template <class T>
typename A<T>::S * B<T>::TestFunc( A<T>::S *p ){
  return 1;
}
よろしくお願いします。