gpt4 book ai didi

C++:如何将具有指针的类保存为文件中的成员?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:43:21 26 4
gpt4 key购买 nike

例如下面的类:

class example
{
public:
int *numbers;//int pointer
int size;

example(int s)
{
size=s;
numbers=new int [size];
}

~example()
{
delete []numbers;
}
}

如何将此类存储在文件中?

最佳答案

这个问题没有简单的解决方案——简单地用指针表示内存中的一个位置,但是当您从文件中恢复数据时,您希望它存储在其他地方(即不在原始位置),因此存储指针无论如何都会失败。

相反,您需要在从文件加载时设置指针以重新链接到正确的内存位置。通常,用于处理此类问题的策略是为每条记录存储一个数字 ID - 当您从需要链接的文件中加载 ID 时,您会从已加载的文件中查找 ID 并将指针设置为该文件记录。这个过程令人惊讶地称为指针调配(感谢@keyser)。

这个问题一般指一个类的序列化this questionthis question是开始在 Stack Overflow 上阅读有关此过程的好地方。

这类问题有广泛使用的工具;查看 boost::serialzation 文档。

关于C++:如何将具有指针的类保存为文件中的成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25263997/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com