-3
template<class Type>
tmp<GeometricField<Type, fvPatchField, volMesh>> operator&
(
   const fvMatrix<Type>&,
   const tmp<GeometricField<Type, fvPatchField, volMesh>>&
);

谁能帮我理解 OpenFoam 中的这个覆盖功能?众所周知,operator& override 不应该有两个参数。所以,我很困惑。有谁知道如何使用这个覆盖功能?请给我一个简单的例子,如果你不忙?谢谢。

4

1 回答 1

3

众所周知,operator&override 不应该有两个参数。

不对。

一元operator&和二元operator&有两种不同的含义。

一元operator&相当于地址运算符,而二进制operator&相当于按位与运算符

由于对我来说不明显的原因,发布的代码定义了a和 a&之间二元运算符的重载。fvMatrix<Type>tmp<GeometricField<Type, fvPatchField, volMesh>>

从语法上讲,用法是:

fvMatrix<Type> var1{};
tmp<GeometricField<Type, fvPatchField, volMesh>> var2{};

auto var3 = var1 & var2;
于 2018-02-26T21:59:35.747 回答