Overload ostream and istream : Inserter Extractor « Overload « C++






Overload ostream and istream

Overload ostream and istream
  

#include <iostream>
#include <cstring>
using namespace std;

class inventory {
  char item[40];              // name of item
  int onhand;                 // number on hand
  double cost;                // cost of item
public:
  inventory(char *i, int o, double c)
  {
    strcpy(item, i);
    onhand = o;
    cost = c;
  }
  friend ostream &operator<<(ostream &stream, inventory ob);
  friend istream &operator>>(istream &stream, inventory &ob);
};

ostream &operator<<(ostream &stream, inventory ob)
{
  stream << ob.item << ": " << ob.onhand;
  stream << " on hand at $" << ob.cost << '\n';

  return stream;
}

istream &operator>>(istream &stream, inventory &ob)
{
  cout << "Enter item name: ";
  stream >> ob.item;
  cout << "Enter number on hand: ";
  stream >> ob.onhand;
  cout << "Enter cost: ";
  stream >> ob.cost;

  return stream;
}

int main()
{
  inventory ob("hammer", 4, 12.55);

  cout << ob;

  cin >> ob;

  cout << ob;

  return 0;
}

           
         
    
  








Related examples in the same category

1.Overload the << operator
2.Override and input output stream operator
3.Overloading operator<<()
4.Demonstrate a custom inserter and extractor for objects of type ThreeD.
5.Non-member functions are used to create custom inserters for three_d objects and to overload + for int + three_d.