我有一个函数RegVectorField3d* Import(const char* path)
。 RegVectorField3d
实现接口IUnsteadyVectorField3d
。然后,我创建了一个变量RegVectorField3d* v = Import(path)
,导入已正确执行。
我已经定义了类型typedef UnsteadyPhase<IUnsteadyVectorField3d> space
,该类型定义为:
template <typename TVectorField>
class UnsteadyTracerPhase{
public:
UnsteadyTracerPhase(const TVectorField& v) : mVectorField(v) {}
private:
const TVectorField& mVectorField;
}
在文件中,我还有另一种类型ABCVectorField3d
,它也实现了接口IUnsteadyVectorField3d
。我做了这样的事情,没有抱怨:
ABCVectorField3d v;
Space(v);
但是,当我使用RegVectorField3d
时,它开始抱怨:
RegVectorField3d* v = Import(path);
Space(*v);
UnsteadyTracerPhase<IUnsteadyVectorField3d>::UnsteadyTracerPhase(UnsteadyTracerPhase<IUnsteadyVectorField3d> &&)':
cannot convert argument 1 from 'RegUnsteadyVectorField3d' to 'const TVectorField &
我的导入功能无法更改。有什么方法可以将RegUnsteadyVectorField3d*
转换为const TVectorField &
并将其传递给构造函数?
非常感谢您!