template <class T>
class Hola {
protected:
  T *base;
public:
  Hola() : base(0) {}
};

template <class T>
class Adios : public Hola<T> {
  Hola<T> *hptr;
  int rows;
public:
  Adios(int n) { rows = n; hptr = new Hola<T>[n]; }
  ~Adios() { delete[] hptr; }
};

int main(int argc, char *argv[]) {
  Adios<double> a(5);
  return 0;
}