Si vous souhaitez définir l'opérateur de sorte que vous pouvez faire:
cin >> myGraph
cout << myGraph
Vous besoin de faire quelque chose comme cet exemple ci-dessous:
struct Entry
{
string symbol;
string original;
string currency;
Entry() {}
~Entry() {}
Entry(string& symbol, string& original, string& currency)
: symbol(symbol), original(original), currency(currency)
{}
Entry(const Entry& e)
: symbol(e.symbol), original(e.original), currency(e.currency)
{}
};
istream& operator>>(istream& is, Entry& en);
ostream& operator<<(ostream& os, const Entry& en);
ensuite mettre en œuvre les opérateurs:
istream& operator>>(istream& is, Entry& en)
{
is >> en.symbol;
is >> en.original;
is >> en.currency;
return is;
}
ostream& operator<<(ostream& os, const Entry& en)
{
os << en.symbol << " " << en.original << " " << en.currency;
return os;
}
Remarque: dans ce cas, l'entrée est structurée de façon à ce que ses membres soient publics. Si vous ne voulez pas les rendre publics, vous pouvez définir les méthodes de l'opérateur comme des amis afin qu'ils puissent accéder aux membres privés de Entry.
Voici comment l'entrée ressemblerait si elle les membres de ne sont pas publiques:
struct Entry
{
private:
string symbol;
string original;
string currency;
public:
Entry() {}
~Entry() {}
Entry(string& symbol, string& original, string& currency)
: symbol(symbol), original(original), currency(currency)
{}
Entry(const Entry& e)
: symbol(e.symbol), original(e.original), currency(e.currency)
{}
friend istream& operator>>(istream& is, Entry& en);
friend ostream& operator<<(ostream& os, const Entry& en);
};
Merci pour modifier, je ne sais pas pourquoi je tapais « mondiale » ... – stefanB
L'utilisation correcte de >> mais ne répond pas vraiment à la question. –