如何将指针作为const引用传递给另一个函数?

时间:2019-05-30 10:19:18

标签: c++ pointers

我有一个函数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 &并将其传递给构造函数?

非常感谢您!

0 个答案:

没有答案