/*!
 * \file foo.hpp
 * \brief brief for file foo.hpp
 *
 * detailed for file foo.hpp
 */


//! Brief for class A
/*!
 * detailed for class A
 */
class ifA
{
public:
  //! Brief for method A
  /*!
   * detailed for method A
   */
  virtual void A() = 0;
};

//! Brief for class B
/*!
 * detailed for class B
 */
class ifB
{
public:
  //! Brief for method B
  /*!
   * detailed for method B
   */
  virtual void B() = 0;
};

//! Brief for class C
/*!
 * detailed for class C
 */
class ifC
{
public:
  //! Brief for method C
  /*!
   * detailed for method C
   */
  virtual void C() = 0;
};


//! Brief for class foo
/*!
 * detailed for class foo
 */
class foo:
  public ifA,
  public ifB,
  public ifC
{
public:
  //! Constructor
  foo(){}

  //! Destructor
  ~foo(){}

  // doc inherited
  virtual void A(){}

  // doc inherited
  virtual void B(){}

  // doc inherited
  virtual void C(){}

};
