バイナリファイルからSRDオブジェクトの配列を読み取っていますが、これが初めてだったので、何が起こるかわからなかったため、ヘッダーを変更してすべてのメンバーを公開しました。割り当てを完了しました。残っているのは、これらのメンバーをプライベートにし、それらを変更するメソッドを作成することだけです。ただし、問題があります。デバッグの目的で、メンバーを1つだけプライベートにし、そのためのすべてのメソッドを作成するまで、そのように保持します。このメンバーは単にunsignedintCです。それを返すメソッドを作成すると(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 ...にアクセスできます。つまり、Cにアクセスすることは問題ではありませんが、前のforループのfreadには設定されていません。これらの値を設定するある種の代入演算子が必要だと思いますが、手がかりがありません...