我需要知道以下源代码的含义:
Foam::fvMesh mesh //object mesh of class fvMesh
(
Foam::IOobject // ?
(
Foam::fvMesh::defaultRegion,
runTime.timeName(),
runTime,
Foam::IOobject::MUST_READ
)
如果我在开头是正确的,则会创建类mesh
的对象fvMesh
。这个连接中的以下代码是什么意思? (以示例中的?开头)
问候 Streight
答案 0 :(得分:2)
它格式奇怪,但它只是通过调用另一个对象的构造函数初始化的对象。
Type obj
(
Type2(
X,
Y
)
);
是
Type obj( Type2( X, Y ) );
这意味着创建Type2
的临时对象并将其传递给Type
的构造函数。
答案 1 :(得分:2)
这对我来说就像一个相当复杂的对象构造。
考虑fvMesh
的构造函数是否如下所示:
class fvMesh
{
fvMesh (const IOobject& obj);
};
并且IOobject
的构造函数依次为:
class IOobject
{
IOobject (Region, string, time, flag);
};
构造类型为mesh
的名为fvMesh
的变量类似于:
IOobject temp (Foam::fvMesh::defaultRegion,runTime.timeName(),runTime, Foam::IOobject::MUST_READ);
Foam::fvMesh mesh(temp);
但是由于fvMesh
构造函数采用const引用,您也可以传递一个临时的IOobject
,在运行中构造然后丢弃:
Foam::fvMesh mesh(IOobject(Foam::fvMesh::defaultRegion,runTime.timeName(),runTime, Foam::IOobject::MUST_READ));
这与您发布的代码相同,只是您的代码有一些额外的空格。