C++ Tutorial/Operator Overloading/custom extractor

Материал из C\C++ эксперт
Версия от 10:30, 25 мая 2010; Admin (обсуждение | вклад) (1 версия: Импорт контента...)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

A custom extractor (>>)

#include <iostream> 
using namespace std; 
 
class MyClass { 
  int x, y, z; 
public: 
  MyClass(int a, int b, int c) { x = a; y = b; z = c; } 
  friend ostream &operator<<(ostream &stream, MyClass obj); 
  friend istream &operator>>(istream &stream, MyClass &obj); 
} ; 
 
ostream &operator<<(ostream &stream, MyClass obj) 
{ 
  stream << obj.x << ", "; 
  stream << obj.y << ", "; 
  stream << obj.z << "\n"; 
  return stream; // return the stream 
} 
 
istream &operator>>(istream &stream, MyClass &obj) 
{ 
  cout << "Enter X,Y,Z values: "; 
  stream >> obj.x >> obj.y >> obj.z; 
  return stream; 
} 
 
int main() 
{ 
  MyClass a(1, 2, 3); 
 
  cout << a; 
 
  cin >> a; 
  cout << a; 
 
  return 0; 
}
1, 2, 3
Enter X,Y,Z values: 1
2
3
1, 2, 3