我一直在从二进制文件中读取一组 SRD 对象 - 但由于这是我第一次这样做,我修改了一个标头,使其所有成员都公开,因为我不确定会发生什么。我已经完成了我的任务,剩下的就是将这些成员设为私有并编写修改它们的方法。但是,有一个问题。出于调试目的,我只将 1 个成员设为私有,在我为它编写所有方法之前,我将保持这种状态。这个成员只是一个无符号的int C。当写一个返回它的方法时(getC()返回C),它返回的值是0000...3435973836,意思是它没有设置?因此,我根据二进制文件中的对象数量创建了一个指向 SRD 的指针数组。
SRD *a;
...
a = new SRD[numOfRecords];
并且数组是从文件中填充的......
for (i=0; i<numOfRecords; i++)
{
f.seekg(i * sizeof s);
f.read((char *)&a[i], sizeof s);
cout << a[i].getCC();
}
现在,a[i].getCC()
当 C 公开时可以工作,但将其设为私有会使 000..3435... 意味着访问它不是问题,但它没有在前一个 for 循环的 fread 中设置。我想我需要某种类型的赋值运算符来设置这些值,但我不知道......