Mega Code Archive

 
Categories / C++ Tutorial / Operator Overloading
 

Friend ostream operator for private fields

#include <iostream> #include <cstring> using namespace std; class MyClass {   // now private   char name[80];   int areacode;   int prefix;   int num; public:   MyClass(char *n, int a, int p, int nm)   {     strcpy(name, n);     areacode = a;     prefix = p;     num = nm;   }   friend ostream &operator<<(ostream &stream, MyClass o); }; ostream &operator<<(ostream &stream, MyClass o) {   stream << o.name << " ";   stream << "(" << o.areacode << ") ";   stream << o.prefix << "-" << o.num << "\n";   return stream; } int main() {   MyClass a("T", 1, 5, 1);   MyClass b("A", 3, 5, 5);   MyClass c("T", 2, 5, 9);   cout << a << b << c;   return 0; } T (1) 5-1 A (3) 5-5 T (2) 5-9