所以我有一个指向员工对象的共享指针向量:
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
}
如何取消引用以获取我的对象的值?
答案 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;
...