c ++ ofstream写入文件的值不是对象的地址

时间:2015-07-19 04:20:01

标签: c++ vector ofstream

所以我有一个指向员工对象的共享指针向量:

static std::vector<std::shared_ptr<Employee>> myVector;

我想把我存储在那里的员工对象写到文件中:

ofstream myFile;
myFile.open("test.bin", ios::binary);

if (file_out.is_open()){
    file_out << myEmployee.myVector[0] << endl;//works just fine i get 0057BCC8
    file_out << *myEmployee.myVector[0] << endl;//deference doesnt show anything
}

如何取消引用以获取我的对象的值?

1 个答案:

答案 0 :(得分:0)

好的,最后我发现我是如此愚蠢,我忽略了这一点。是的员工可以打印出来,因为我重载了操作员&lt;&lt;,但这不是我的问题。

因为我的矢量持有员工对象的共享指针,所以我必须使用 - &gt;像这样的运营商

if (file_out.is_open()){
        for (std::vector<int>::size_type i = 0; i != myEmployee.myVector.size(); i++){
            file_out << myEmployee.myVector[i]->name << endl;
            file_out << myEmployee.myVector[i]->id << endl;

...