C++での多重継承ってどのようなデメリットがあるんですか?

template<class T> struct IConverter;
template<class T> struct IClonable;

class Base;
class Converter : public Base, public IConverter<int>, public IClonable<Converter>;

template<class T> T Convert(IConverter<T>* conv);

void Hoge
{
  Converter converter;
  int val = Convert<int>(converter);
}

って感じに使いたいのですが。