左移运算符重载


class Person
{
   friend std::ostream &operator<<(std::ostream &out, Person &person);

public:
   void name_set(const std::string &name)                                                                                                                                                    
   {   
      m_name = name;
   }   

   void age_set(int age)
   {   
      m_age = age;
   }   

private:
   std::string m_name;
   int m_age;
};

std::ostream &operator<<(std::ostream &out, Person &person)
{
   out << "name: " << person.m_name << ", age: " << person.m_age;
}

int main()
{
   Person p;
   p.name_set("furong");
   p.age_set(10);

   std::cout << p << std::endl;

   return 0;
}
$ ./a.out             
name: furong, age: 10