#include <iostream>

template<class T>
class Area {
  public:
    T a;
    T getArea() { return a; }
    void setArea(T t) { a = t; }
};  

class Rectangle : public Area<int>, public Area<char> {
public:
  using Area<int>::setArea;
  using Area<char>::setArea;
};  

int main() {
  Rectangle a;
  a.setArea(1);
  std::cout << a.Area<int>::getArea() << std::endl;
  Rectangle b;
  b.setArea('c');
  std::cout << b.Area<char>::getArea() << std::endl;
  return 0;
}