使用流初始化c++对象

Using streams to initialise c++ objects

本文关键字:c++ 对象 初始化      更新时间:2023-10-16

我正在阅读Game Coding Complete,它建议有两个init()函数,一个是您通常的init()调用,另一个接受流。不过,它没有涉及太多细节,我有点困惑。

class AnimatinPath
{
public:
   AnimationPath();
   Initialize(std::vector<AnimationPathPoints> const & srcPath);
   Initialize(InputStream & stream);
   // ...
};

它接着说,您可以从磁盘、内存或通过网络初始化对象。

什么是溪流?我已经使用C++大约两年了,我使用stream的唯一经验是iostream。这是否意味着我有一个可以使用的对象的二进制输出?

在创建对象时,语法在另一端会是什么样子。

谢谢。

"流"实际上并不重要。

具有流参数的第二个init函数意味着对象序列化。

看看这篇SO文章:如何在C++中序列化对象?

你可以在谷歌上搜索"对象序列化"以获取更多信息。

另一个init用于从某个流构建对象:光盘文件、网络数据等。在AnimationPath的情况下,您可以在某个文件中定义路径,并使用此方法加载数据。