Openfoam C++ 运算符和覆盖

openfoam C++ operator& override

本文关键字:覆盖 运算符 C++ Openfoam      更新时间:2023-10-16
template<class Type>
tmp<GeometricField<Type, fvPatchField, volMesh>> operator&
(
   const fvMatrix<Type>&,
   const tmp<GeometricField<Type, fvPatchField, volMesh>>&
);

谁能帮助我理解OpenFOAM中的这种覆盖功能?众所周知,运营商&amp;覆盖不应有两个参数。所以,我很困惑。有人知道如何使用此覆盖功能吗?如果您不忙,请给我举一个简单的例子?谢谢。

我们知道,operator&覆盖不应有两个参数。

不正确。

单元operator&和二进制operator&具有两个不同的含义。

一元operator&是运算符的等效物,而二进制 operator&等效于位和运算符。

由于我不明显的原因,已发布的代码定义了fvMatrix<Type>tmp<GeometricField<Type, fvPatchField, volMesh>>之间的二进制&运算符的过载。

句法,用法将是:

fvMatrix<Type> var1{};
tmp<GeometricField<Type, fvPatchField, volMesh>> var2{};
auto var3 = var1 & var2;