C++ openfoam C++;营运商及;推翻 模板 tmp操作员& ( 常数fv矩阵&, 常数tmp& );

C++ openfoam C++;营运商及;推翻 模板 tmp操作员& ( 常数fv矩阵&, 常数tmp& );,c++,overriding,openfoam,C++,Overriding,Openfoam,有人能帮我理解OpenFoam中的覆盖功能吗?我们知道,操作符和覆盖不应该有两个参数。所以,我很困惑。有人知道如何使用这个超控功能吗?如果你不忙,请给我举个简单的例子?谢谢 我们知道,操作符&覆盖不应该有两个参数 不是真的 一元运算符&和二元运算符&有两种不同的含义 一元运算符&相当于,而二进制运算符&相当于 出于我不清楚的原因,发布的代码在fvMatrix和tmp之间定义了二进制&运算符的重载 从语法上讲,用法是: template<class Type> tmp<Geome

有人能帮我理解OpenFoam中的覆盖功能吗?我们知道,操作符和覆盖不应该有两个参数。所以,我很困惑。有人知道如何使用这个超控功能吗?如果你不忙,请给我举个简单的例子?谢谢

我们知道,
操作符&
覆盖不应该有两个参数

不是真的

一元
运算符&
和二元
运算符&
有两种不同的含义

一元
运算符&
相当于,而二进制
运算符&
相当于

出于我不清楚的原因,发布的代码在
fvMatrix
tmp
之间定义了二进制
&
运算符的重载

从语法上讲,用法是:

template<class Type>
tmp<GeometricField<Type, fvPatchField, volMesh>> operator&
(
   const fvMatrix<Type>&,
   const tmp<GeometricField<Type, fvPatchField, volMesh>>&
);
fvMatrix var1{};
tmp-var2{};
自动变量3=变量1和变量2;

@刘雄国, 我不知道你在评论中想说什么。好的,非常感谢。现在我明白了。这帮了大忙。
fvMatrix<Type> var1{};
tmp<GeometricField<Type, fvPatchField, volMesh>> var2{};

auto var3 = var1 & var2;