Каков рекомендуемый подход для обновления объекта после создания потоком данных? Я хотел бы избежать использования нескольких методов SetXX.Оператор побитового сдвига влево
Скажем, у меня есть класс, который выглядит следующим образом:
class Model
{
public:
Model(int, double, std::string);
private:
int a;
double b;
std::string c;
};
Один из подходов к решению этого вопроса заключается в добавлении оператора;
friend Model& operator<<(Model&, std::stringstream&)
Использование вышеуказанного кода;
// create model
Model model(...);
// do stuff
// update model later
model << stream;
Этот подход компилируется и запускается.
Просто интересно, если это хороший подход, и есть ли у него какие-то недостатки \ ограничения? Обратите внимание, что в большинстве случаев онлайн-оператор < < использует его иначе, чем то, что я делаю выше.
Обычный способ получения информации из потока - это оператор ввода (или * right * shift) '>>', так что вы делаете, например. 'stream >> model', способ ввода данных из любого другого потока, например' std :: cin'. Ваш путь работает, но это необычно и не будет легко понять или понять другие, кроме вас самих (и, возможно, даже не через несколько месяцев). Не могли бы вы объяснить, почему вы хотите, чтобы это было наоборот? В чем смысл? –
Если это рабочий код, то вопрос, вероятно, лучше подходит для http://codereview.stackexchange.com –
Определенно хороший вопрос, однако он может быть более подходящим для [codereview] (http://codereview.stackexchange.com/), так как он касается рабочего кода, который не показывает ошибку. – Codor