我正在阅读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
的情况下,您可以在某个文件中定义路径,并使用此方法加载数据。