A<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FOverload%2FInserter_Extractor</id>
		<title>C++/Overload/Inserter Extractor - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FOverload%2FInserter_Extractor"/>
		<link rel="alternate" type="text/html" href="http://cppe.ru/index.php?title=C%2B%2B/Overload/Inserter_Extractor&amp;action=history"/>
		<updated>2026-04-18T02:31:46Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://cppe.ru/index.php?title=C%2B%2B/Overload/Inserter_Extractor&amp;diff=2021&amp;oldid=prev</id>
		<title> в 14:21, 25 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://cppe.ru/index.php?title=C%2B%2B/Overload/Inserter_Extractor&amp;diff=2021&amp;oldid=prev"/>
				<updated>2010-05-25T14:21:06Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 14:21, 25 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://cppe.ru/index.php?title=C%2B%2B/Overload/Inserter_Extractor&amp;diff=2022&amp;oldid=prev</id>
		<title>Admin: 1 версия:&amp;#32;Импорт контента...</title>
		<link rel="alternate" type="text/html" href="http://cppe.ru/index.php?title=C%2B%2B/Overload/Inserter_Extractor&amp;diff=2022&amp;oldid=prev"/>
				<updated>2010-05-25T10:28:26Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия: Импорт контента...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Demonstrate a custom inserter and extractor for objects of type ThreeD.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
class ThreeD {&lt;br /&gt;
  int x, y, z;&lt;br /&gt;
public:&lt;br /&gt;
  ThreeD(int a, int b, int c) { x = a; y = b; z = c; }&lt;br /&gt;
  // Make the inserter and extractor friends of ThreeD.&lt;br /&gt;
  friend ostream &amp;amp;operator&amp;lt;&amp;lt;(ostream &amp;amp;stream, const ThreeD &amp;amp;obj);&lt;br /&gt;
  friend istream &amp;amp;operator&amp;gt;&amp;gt;(istream &amp;amp;stream, ThreeD &amp;amp;obj);&lt;br /&gt;
};&lt;br /&gt;
// ThreeD inserter. Display the X, Y, Z coordinates.&lt;br /&gt;
ostream &amp;amp;operator&amp;lt;&amp;lt;(ostream &amp;amp;stream, const ThreeD &amp;amp;obj)&lt;br /&gt;
{&lt;br /&gt;
  stream &amp;lt;&amp;lt; obj.x &amp;lt;&amp;lt; &amp;quot;, &amp;quot;;&lt;br /&gt;
  stream &amp;lt;&amp;lt; obj.y &amp;lt;&amp;lt; &amp;quot;, &amp;quot;;&lt;br /&gt;
  stream &amp;lt;&amp;lt; obj.z &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
  return stream;&lt;br /&gt;
}&lt;br /&gt;
// ThreeD extractor. Get three-dimensional values.&lt;br /&gt;
istream &amp;amp;operator&amp;gt;&amp;gt;(istream &amp;amp;stream, ThreeD &amp;amp;obj)&lt;br /&gt;
{&lt;br /&gt;
  stream &amp;gt;&amp;gt; obj.x &amp;gt;&amp;gt; obj.y &amp;gt;&amp;gt; obj.z;&lt;br /&gt;
  return stream;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  ThreeD td(1, 2, 3);&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;The coordinates in td: &amp;quot; &amp;lt;&amp;lt; td &amp;lt;&amp;lt; endl;&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;Enter new three-d coordinates: &amp;quot;;&lt;br /&gt;
  cin &amp;gt;&amp;gt; td;&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;The coordinates in td are now: &amp;quot; &amp;lt;&amp;lt; td &amp;lt;&amp;lt; endl;&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Non-member functions are used to create custom inserters for three_d objects and to overload + for int + three_d.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
class three_d {&lt;br /&gt;
  int x, y, z;&lt;br /&gt;
public:&lt;br /&gt;
  three_d() { x = y = z = 0; }&lt;br /&gt;
  three_d(int i, int j, int k) { x = i; y = j; z = k; }&lt;br /&gt;
  three_d operator+(three_d rh_op);&lt;br /&gt;
  three_d operator+(int rh_op);&lt;br /&gt;
  three_d operator-(three_d rh_op);&lt;br /&gt;
  three_d operator=(three_d rh_op);&lt;br /&gt;
  bool operator==(three_d rh_op);&lt;br /&gt;
  three_d operator-();&lt;br /&gt;
  friend ostream &amp;amp;operator&amp;lt;&amp;lt;(ostream &amp;amp;strm, three_d op);&lt;br /&gt;
  friend three_d operator+(int lh_op, three_d rh_op);&lt;br /&gt;
};&lt;br /&gt;
three_d three_d::operator+(three_d rh_op)&lt;br /&gt;
{&lt;br /&gt;
  three_d temp;&lt;br /&gt;
  temp.x = x + rh_op.x;&lt;br /&gt;
  temp.y = y + rh_op.y;&lt;br /&gt;
  temp.z = z + rh_op.z;&lt;br /&gt;
  return temp;&lt;br /&gt;
}&lt;br /&gt;
three_d three_d::operator+(int rh_op)&lt;br /&gt;
{&lt;br /&gt;
  three_d temp;&lt;br /&gt;
  temp.x = x + rh_op;&lt;br /&gt;
  temp.y = y + rh_op;&lt;br /&gt;
  temp.z = z + rh_op;&lt;br /&gt;
  return temp;&lt;br /&gt;
}&lt;br /&gt;
three_d three_d::operator-(three_d rh_op)&lt;br /&gt;
{&lt;br /&gt;
  three_d temp;&lt;br /&gt;
  temp.x = x - rh_op.x;&lt;br /&gt;
  temp.y = y - rh_op.y;&lt;br /&gt;
  temp.z = z - rh_op.z;&lt;br /&gt;
  return temp;&lt;br /&gt;
}&lt;br /&gt;
three_d three_d::operator-()&lt;br /&gt;
{&lt;br /&gt;
  three_d temp;&lt;br /&gt;
  temp.x = -x;&lt;br /&gt;
  temp.y = -y;&lt;br /&gt;
  temp.z = -z;&lt;br /&gt;
  return temp;&lt;br /&gt;
}&lt;br /&gt;
three_d three_d::operator=(three_d rh_op)&lt;br /&gt;
{&lt;br /&gt;
  x = rh_op.x;&lt;br /&gt;
  y = rh_op.y;&lt;br /&gt;
  z = rh_op.z;&lt;br /&gt;
  return *this;&lt;br /&gt;
}&lt;br /&gt;
bool three_d::operator==(three_d rh_op)&lt;br /&gt;
{&lt;br /&gt;
  if( (x == rh_op.x) &amp;amp;&amp;amp; (y == rh_op.y) &amp;amp;&amp;amp; (z == rh_op.z) )&lt;br /&gt;
    return true;&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
ostream &amp;amp;operator&amp;lt;&amp;lt;(ostream &amp;amp;strm, three_d op) {&lt;br /&gt;
  strm &amp;lt;&amp;lt; op.x &amp;lt;&amp;lt; &amp;quot;, &amp;quot; &amp;lt;&amp;lt; op.y &amp;lt;&amp;lt; &amp;quot;, &amp;quot; &amp;lt;&amp;lt; op.z &amp;lt;&amp;lt; endl;&lt;br /&gt;
  return strm;&lt;br /&gt;
}&lt;br /&gt;
three_d operator+(int lh_op, three_d rh_op) {&lt;br /&gt;
  three_d temp;&lt;br /&gt;
  temp.x = lh_op + rh_op.x;&lt;br /&gt;
  temp.y = lh_op + rh_op.y;&lt;br /&gt;
  temp.z = lh_op + rh_op.z;&lt;br /&gt;
  return temp;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  three_d objA(1, 2, 3), objB(10, 10, 10), objC;&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;This is objA: &amp;quot; &amp;lt;&amp;lt; objA;&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;This is objB: &amp;quot; &amp;lt;&amp;lt; objB;&lt;br /&gt;
  objC = -objA;&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;This is -objA: &amp;quot; &amp;lt;&amp;lt; objC;&lt;br /&gt;
  objC = objA + objB;&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;objA + objB: &amp;quot; &amp;lt;&amp;lt; objC;&lt;br /&gt;
  objC = objA - objB;&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;objA - objB: &amp;quot; &amp;lt;&amp;lt; objC;&lt;br /&gt;
  objC = objA + 10;&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;objA + 10: &amp;quot; &amp;lt;&amp;lt; objC;&lt;br /&gt;
  objC = 100 + objA;&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;100 + objA: &amp;quot; &amp;lt;&amp;lt; objC;&lt;br /&gt;
  if(objA == objB) &lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;objA is equal to objB.\n&amp;quot;;&lt;br /&gt;
  else &lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;objA is not equal to objB.\n&amp;quot;;&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overloading operator==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
class String&lt;br /&gt;
{&lt;br /&gt;
   public:&lt;br /&gt;
      String();&lt;br /&gt;
       String(const char *const);&lt;br /&gt;
       String(const String &amp;amp;);&lt;br /&gt;
      ~String();&lt;br /&gt;
      char &amp;amp; operator[](int offset);&lt;br /&gt;
      char operator[](int offset) const;&lt;br /&gt;
      String operator+(const String&amp;amp;);&lt;br /&gt;
      void operator+=(const String&amp;amp;);&lt;br /&gt;
      String &amp;amp; operator= (const String &amp;amp;);&lt;br /&gt;
      friend ostream&amp;amp; operator&amp;lt;&amp;lt;( ostream&amp;amp; theStream,String&amp;amp; theString);&lt;br /&gt;
      int GetLen()const { return itsLen; }&lt;br /&gt;
      const char * GetString() const { return itsString; }&lt;br /&gt;
   private:&lt;br /&gt;
      String (int);&lt;br /&gt;
      char * itsString;&lt;br /&gt;
      unsigned short itsLen;&lt;br /&gt;
};&lt;br /&gt;
String::String(){&lt;br /&gt;
   itsString = new char[1];&lt;br /&gt;
   itsString[0] = &amp;quot;\0&amp;quot;;&lt;br /&gt;
   itsLen=0;&lt;br /&gt;
}&lt;br /&gt;
String::String(int len)&lt;br /&gt;
{&lt;br /&gt;
   itsString = new char[len+1];&lt;br /&gt;
   for (int i = 0; i&amp;lt;=len; i++)&lt;br /&gt;
      itsString[i] = &amp;quot;\0&amp;quot;;&lt;br /&gt;
   itsLen=len;&lt;br /&gt;
}&lt;br /&gt;
String::String(const char * const cString)&lt;br /&gt;
{&lt;br /&gt;
   itsLen = strlen(cString);&lt;br /&gt;
   itsString = new char[itsLen+1];&lt;br /&gt;
   for (int i = 0; i&amp;lt;itsLen; i++)&lt;br /&gt;
      itsString[i] = cString[i];&lt;br /&gt;
   itsString[itsLen]=&amp;quot;\0&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
String::String (const String &amp;amp; rhs)&lt;br /&gt;
{&lt;br /&gt;
   itsLen=rhs.GetLen();&lt;br /&gt;
   itsString = new char[itsLen+1];&lt;br /&gt;
   for (int i = 0; i&amp;lt;itsLen;i++)&lt;br /&gt;
      itsString[i] = rhs[i];&lt;br /&gt;
   itsString[itsLen] = &amp;quot;\0&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
String::~String ()&lt;br /&gt;
{&lt;br /&gt;
   delete [] itsString;&lt;br /&gt;
   itsLen = 0;&lt;br /&gt;
}&lt;br /&gt;
String&amp;amp; String::operator=(const String &amp;amp; rhs)&lt;br /&gt;
{&lt;br /&gt;
   if (this == &amp;amp;rhs)&lt;br /&gt;
      return *this;&lt;br /&gt;
   delete [] itsString;&lt;br /&gt;
   itsLen=rhs.GetLen();&lt;br /&gt;
   itsString = new char[itsLen+1];&lt;br /&gt;
   for (int i = 0; i&amp;lt;itsLen;i++)&lt;br /&gt;
      itsString[i] = rhs[i];&lt;br /&gt;
   itsString[itsLen] = &amp;quot;\0&amp;quot;;&lt;br /&gt;
   return *this;&lt;br /&gt;
}&lt;br /&gt;
char &amp;amp; String::operator[](int offset){&lt;br /&gt;
   if (offset &amp;gt; itsLen)&lt;br /&gt;
      return itsString[itsLen-1];&lt;br /&gt;
   else&lt;br /&gt;
      return itsString[offset];&lt;br /&gt;
}&lt;br /&gt;
char String::operator[](int offset) const&lt;br /&gt;
{&lt;br /&gt;
   if (offset &amp;gt; itsLen)&lt;br /&gt;
      return itsString[itsLen-1];&lt;br /&gt;
   else&lt;br /&gt;
      return itsString[offset];&lt;br /&gt;
}&lt;br /&gt;
String String::operator+(const String&amp;amp; rhs)&lt;br /&gt;
{&lt;br /&gt;
   int  totalLen = itsLen + rhs.GetLen();&lt;br /&gt;
   String temp(totalLen);&lt;br /&gt;
   int i, j;&lt;br /&gt;
   for (i = 0; i&amp;lt;itsLen; i++)&lt;br /&gt;
      temp[i] = itsString[i];&lt;br /&gt;
   for (j = 0; j&amp;lt;rhs.GetLen(); j++, i++)&lt;br /&gt;
      temp[i] = rhs[j];&lt;br /&gt;
   temp[totalLen]=&amp;quot;\0&amp;quot;;&lt;br /&gt;
   return temp;&lt;br /&gt;
}&lt;br /&gt;
void String::operator+=(const String&amp;amp; rhs)&lt;br /&gt;
{&lt;br /&gt;
   unsigned short rhsLen = rhs.GetLen();&lt;br /&gt;
   unsigned short totalLen = itsLen + rhsLen;&lt;br /&gt;
   String  temp(totalLen);&lt;br /&gt;
   int i, j;&lt;br /&gt;
   for (i = 0; i&amp;lt;itsLen; i++)&lt;br /&gt;
      temp[i] = itsString[i];&lt;br /&gt;
   for (j = 0, i = 0; j&amp;lt;rhs.GetLen(); j++, i++)&lt;br /&gt;
      temp[i] = rhs[i-itsLen];&lt;br /&gt;
   temp[totalLen]=&amp;quot;\0&amp;quot;;&lt;br /&gt;
   *this = temp;&lt;br /&gt;
}&lt;br /&gt;
ostream&amp;amp; operator&amp;lt;&amp;lt; ( ostream&amp;amp; theStream,String&amp;amp; theString)&lt;br /&gt;
{&lt;br /&gt;
     theStream &amp;lt;&amp;lt; theString.itsString;&lt;br /&gt;
     return theStream;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    String theString(&amp;quot;Hello world.&amp;quot;);&lt;br /&gt;
    cout &amp;lt;&amp;lt; theString;&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overload ostream and istream==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;cstring&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
class inventory {&lt;br /&gt;
  char item[40];              // name of item&lt;br /&gt;
  int onhand;                 // number on hand&lt;br /&gt;
  double cost;                // cost of item&lt;br /&gt;
public:&lt;br /&gt;
  inventory(char *i, int o, double c)&lt;br /&gt;
  {&lt;br /&gt;
    strcpy(item, i);&lt;br /&gt;
    onhand = o;&lt;br /&gt;
    cost = c;&lt;br /&gt;
  }&lt;br /&gt;
  friend ostream &amp;amp;operator&amp;lt;&amp;lt;(ostream &amp;amp;stream, inventory ob);&lt;br /&gt;
  friend istream &amp;amp;operator&amp;gt;&amp;gt;(istream &amp;amp;stream, inventory &amp;amp;ob);&lt;br /&gt;
};&lt;br /&gt;
ostream &amp;amp;operator&amp;lt;&amp;lt;(ostream &amp;amp;stream, inventory ob)&lt;br /&gt;
{&lt;br /&gt;
  stream &amp;lt;&amp;lt; ob.item &amp;lt;&amp;lt; &amp;quot;: &amp;quot; &amp;lt;&amp;lt; ob.onhand;&lt;br /&gt;
  stream &amp;lt;&amp;lt; &amp;quot; on hand at $&amp;quot; &amp;lt;&amp;lt; ob.cost &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
  return stream;&lt;br /&gt;
}&lt;br /&gt;
istream &amp;amp;operator&amp;gt;&amp;gt;(istream &amp;amp;stream, inventory &amp;amp;ob)&lt;br /&gt;
{&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;Enter item name: &amp;quot;;&lt;br /&gt;
  stream &amp;gt;&amp;gt; ob.item;&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;Enter number on hand: &amp;quot;;&lt;br /&gt;
  stream &amp;gt;&amp;gt; ob.onhand;&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;Enter cost: &amp;quot;;&lt;br /&gt;
  stream &amp;gt;&amp;gt; ob.cost;&lt;br /&gt;
  return stream;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  inventory ob(&amp;quot;hammer&amp;quot;, 4, 12.55);&lt;br /&gt;
  cout &amp;lt;&amp;lt; ob;&lt;br /&gt;
  cin &amp;gt;&amp;gt; ob;&lt;br /&gt;
  cout &amp;lt;&amp;lt; ob;&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Override and input output stream operator==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;   &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
class Employee &lt;br /&gt;
{&lt;br /&gt;
 public:&lt;br /&gt;
   Employee(void) {};&lt;br /&gt;
   Employee(char *name, char sex, int age, char *phone) &lt;br /&gt;
   {&lt;br /&gt;
     strcpy(Employee::name, name);&lt;br /&gt;
     Employee::sex = sex;&lt;br /&gt;
     Employee::age = age;&lt;br /&gt;
     strcpy(Employee::phone, phone); &lt;br /&gt;
   };&lt;br /&gt;
     friend ostream &amp;amp;operator&amp;lt;&amp;lt;(ostream &amp;amp;cout, Employee emp);&lt;br /&gt;
     friend istream &amp;amp;operator&amp;gt;&amp;gt;(istream &amp;amp;stream, Employee &amp;amp;emp);&lt;br /&gt;
 private:&lt;br /&gt;
   char name[256];&lt;br /&gt;
   char phone[64];&lt;br /&gt;
   int age;&lt;br /&gt;
   char sex;&lt;br /&gt;
};&lt;br /&gt;
ostream &amp;amp;operator&amp;lt;&amp;lt;(ostream &amp;amp;cout, Employee emp)&lt;br /&gt;
 {&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;Name: &amp;quot; &amp;lt;&amp;lt; emp.name &amp;lt;&amp;lt; &amp;quot;\tSex: &amp;quot; &amp;lt;&amp;lt; emp.sex;&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;\tAge: &amp;quot; &amp;lt;&amp;lt; emp.age &amp;lt;&amp;lt; &amp;quot;\tPhone: &amp;quot; &amp;lt;&amp;lt; emp.phone &amp;lt;&amp;lt; endl;&lt;br /&gt;
   return cout;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
istream &amp;amp;operator&amp;gt;&amp;gt;(istream &amp;amp;stream, Employee &amp;amp;emp)&lt;br /&gt;
{&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;Enter Name: &amp;quot;;&lt;br /&gt;
   stream &amp;gt;&amp;gt; emp.name;&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;Enter Sex: &amp;quot;;&lt;br /&gt;
   stream &amp;gt;&amp;gt; emp.sex;&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;Enter Age: &amp;quot;;&lt;br /&gt;
   stream &amp;gt;&amp;gt; emp.age;&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;Enter Phone: &amp;quot;;&lt;br /&gt;
   stream &amp;gt;&amp;gt; emp.phone;&lt;br /&gt;
   return stream;&lt;br /&gt;
}&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
   Employee worker;&lt;br /&gt;
   cin &amp;gt;&amp;gt; worker;&lt;br /&gt;
   cout &amp;lt;&amp;lt; worker ;&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>