Overload << (inserter) : overload ostream istream operator « Operator Overloading « C++ Tutorial






#include <iostream>
#include <cstring>
using namespace std;
   
class phonebook {
  // now private
  char name[80];
  int areacode;
  int prefix;
  int num;
public:
  phonebook(char *n, int a, int p, int nm)
  {
    strcpy(name, n);
    areacode = a;
    prefix = p;
    num = nm;
  }
  friend ostream &operator<<(ostream &stream, phonebook o);
};
   
// Display name and phone number.
ostream &operator<<(ostream &stream, phonebook o)
{
  stream << o.name << " ";
  stream << "(" << o.areacode << ") ";
  stream << o.prefix << "-" << o.num << "\n";
   
  return stream; // must return stream
}
   
int main()
{
  phonebook a("A", 111, 555, 1234);
  phonebook b("B", 312, 555, 5768);
  phonebook c("C", 212, 555, 9991);
   
  cout << a << b << c;
   
  return 0;
}








10.15.overload ostream istream operator
10.15.1.Class level ostream operator and istream operator
10.15.2.istream operator with data check
10.15.3.Class ostream operator
10.15.4.ostream and istream operator for a class
10.15.5.Complex logic in ostream operator
10.15.6.friend ostream operator for private fields
10.15.7.Overload ostream and istream operator
10.15.8.Ignore: manipulator that ignores N lines
10.15.9.Overloading >>: To demonstrate a custom inserter, one will be created for objects of type phonebook, shown here.
10.15.10.Overload << (inserter)