openfoam C++ 运算符和覆盖
openfoam C++ operator& override
template<class Type>
tmp<GeometricField<Type, fvPatchField, volMesh>> operator&
(
const fvMatrix<Type>&,
const tmp<GeometricField<Type, fvPatchField, volMesh>>&
);
谁能帮我理解一下OpenFoam中的这个override函数?正如我们所知,operator& override 不应该有两个参数。所以,我很困惑。有谁知道如何使用这个覆盖功能?请举个简单的例子,如果你不忙?谢谢
As we know, operator&
override should not have two parameters.
不正确。
一元operator&
和二元operator&
有两种不同的含义。
一元 operator&
等价于 address-of operator while the binary operator&
is the equivalent of the bitwise AND operator.
出于对我来说不明显的原因,发布的代码定义了 fvMatrix<Type>
和 tmp<GeometricField<Type, fvPatchField, volMesh>>
之间的二进制 &
运算符的重载。
从语法上讲,用法是:
fvMatrix<Type> var1{};
tmp<GeometricField<Type, fvPatchField, volMesh>> var2{};
auto var3 = var1 & var2;
template<class Type>
tmp<GeometricField<Type, fvPatchField, volMesh>> operator&
(
const fvMatrix<Type>&,
const tmp<GeometricField<Type, fvPatchField, volMesh>>&
);
谁能帮我理解一下OpenFoam中的这个override函数?正如我们所知,operator& override 不应该有两个参数。所以,我很困惑。有谁知道如何使用这个覆盖功能?请举个简单的例子,如果你不忙?谢谢
As we know,
operator&
override should not have two parameters.
不正确。
一元operator&
和二元operator&
有两种不同的含义。
一元 operator&
等价于 address-of operator while the binary operator&
is the equivalent of the bitwise AND operator.
出于对我来说不明显的原因,发布的代码定义了 fvMatrix<Type>
和 tmp<GeometricField<Type, fvPatchField, volMesh>>
之间的二进制 &
运算符的重载。
从语法上讲,用法是:
fvMatrix<Type> var1{};
tmp<GeometricField<Type, fvPatchField, volMesh>> var2{};
auto var3 = var1 & var2;