Qt C++

#include 
#include 
#include 
#include 
#include 
class Employee {
  public:
    Employee(const QString &surname, const QString &forename)
    {
      m_forename = forename;
      m_surname = surname;
    }
    QString forename() const { return m_forename; }
    QString surname() const { return m_surname; }
  private:
    QString m_forename;
    QString m_surname;
};
inline bool operator<(const Employee &e1, const Employee &e2)
{
  if ( e1.surname() != e2.surname() )
    return e1.surname() < e2.surname();
  return e1.forename() < e2.forename();
}
int main()
{
  Employee d1("M", "D");
  Employee d2("M", "M");
  Employee d3("M", "P");
  QMap map;
  map.insert(0, d1);
  map.insert(1, d2);
  map.insert(2, d3);
  QMapIterator mi(map);
  while ( mi.hasNext() ) {
    mi.next();
    qDebug() << mi.key() << ":" << mi.value().surname() << mi.value().forename();
}