Let\'s say we have a template class Area, which has a member variable T area, a T getArea() and a void setArea(T) member
Area
T area
T getArea()
void setArea(T)
Rectangle will have to be a template, otherwise it is just one type. It cannot be a non-template whilst its base magically is. (Its base may be a template instantiation, though you seem to want to maintain the base's functionality as a template.)
Rectangle