Cara, Eu tenho um exemplo aqui mas não é tão simples para iniciantes. Ele tem classe e função friend, por isso acho que não são todas as pessoas que vão entender. #include <iostream>
#include <ctime>
using namespace std;
#include <iomanip>
using std::setw;
class PhoneNumber{
friend ostream &operator<<(ostream &, const PhoneNumber &);
friend istream &operator>>(istream &, PhoneNumber &);
private:
char areaCode[4]; //codigo de area com 3 digitos e caractere nulo
char exchange[5]; //numero central com 3 digitos e nulo
char line[5]; //numero da linha com 4 digitos e nulo
};
/*Operador de insercao em stream sobrecarregado(não pode ser uma funcao membro se quisermo invoca-la com cout << somePhoneNumber;). */
ostream &operator<<(ostream &output, const PhoneNumber &num)
{
output << "(" << num.areaCode << ") " << num.exchange << "-" << num.line;
return output; // possibilita cout << a << b << c;
}
istream &operator>>(istream &input, PhoneNumber &num)
{
input.ignore(); // salta (
input >> setw(4) >> num.areaCode; //le codigo de area
input.ignore(2); //salta ) e espaco
input >> setw(5) >> num.exchange; //le numero da central
input.ignore(); //salta hifen
input >> setw(5) >> num.line; //le numero da linha
return input; // possibilita cin >> a >> b >> c
}
int main ()
{
PhoneNumber phone;
cout << "Digite numero do telefone no formato (123) 3456-7890:\n";
// cin >> invoca a funcao operator fazendo a chamada operator >>(cin, phone).
cin >> phone;
//cout << phone invoca a funcao operator fazendo a chamada operator<<(cout, phone).
cout << "O numero de telefone digitado foi: " << phone << endl;
system("PAUSE");
return 0;
}