перегружают операторы <<
и >>
и объявляют их как friend
вашему классу, а затем используют их.Вот пример кода.
#include <iostream>
#include <string>
using namespace std;
class Map
{
friend Map& operator << (Map &map, string str);
friend Map& operator >> (Map &map, string str);
};
Map& operator << (Map &map, string str)
{
//do work, save the map with name str
cout << "Saving into \""<< str << "\"" << endl;
return map;
}
Map& operator >> (Map &map, string str)
{
// do work, load the map named str into map
cout << "Loading from \"" << str << "\"" << endl;
return map;
}
int main (void)
{
Map map;
string str;
map << "name1";
map >> "name2";
}
Обратите внимание, что ваша цель - интерпретация возврата объекта, потому что obj << "hello" << "hi";
может означать загрузку obj
как "привет", так и "привет""?или добавить их в таком порядке, это зависит от вас.Также obj >> "hello" >> "hi";
может означать сохранение obj
в двух файлах с именами "привет" и "привет"