Как записать любой пользовательский тип данных в файл, используя ifstream? - PullRequest
1 голос
/ 02 мая 2010

, как говорит вопрос, я хочу записать данные пользовательских типов данных класса, возможно, в файл, используя ifstream в c ++. Нужна помощь.

1 Ответ

7 голосов
/ 02 мая 2010

Для произвольного класса, скажем, Point, вот довольно чистый способ выписать его в ostream.

#include <iostream>

class Point
{
public:
    Point(int x, int y) : x_(x), y_(y) { }

    std::ostream& write(std::ostream& os) const
    {
        return os << "[" << x_ << ", " << y << "]";
    }

private:
    int x_, y_;

};

std::ostream& operator<<(std::ostream& os, const Point& point)
{
    return point.write(os);
}

int main() {
    Point point(20, 30);
    std::cout << "point = " << point << "\n";
}
...