C++ Tutorial/Operator Overloading/custom extractor — различия между версиями

Материал из C\C++ эксперт
Перейти к: навигация, поиск
м (1 версия: Импорт контента...)
 
(нет различий)

Текущая версия на 13:30, 25 мая 2010

A custom extractor (>>)

<source lang="cpp">#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; 

}</source>

1, 2, 3
Enter X,Y,Z values: 1
2
3
1, 2, 3