可以说IOobject在OF中起着十分重要的作用,在OF的代码中到处都可以看到它的身影。
举例来说,任何一个求解器创建的fvMesh类对象的构造都离不开IOobject。比如下面的代码:
Foam::fvMesh mesh
(
Foam::IOobject
(
Foam::fvMesh::defaultRegion,
runTime.timeName(),
runTime,
Foam::IOobject::MUST_READ
)
);
这里就调用了IOobject的一个构造,进行一个临时IOobject对象的创建。
那么IOobject到底是什么,它有什么作用,为什么很多类都用IOobject来构造呢?
其实IOobject,顾名思义就是输入输出对象,它完成的是一个桥梁的作用,即连接要构造的类及硬盘中的相应文件。这可以通过其成员函数objectStream()了解到,当完成了“搭桥”之后,便可通过这一成员函数返回硬盘文件对应的输入流,从而从输入流中读入将要构造的类的相关信息。