我有一个函数对象,它以 lat3d 对象作为参数,我想将这个函数对象传递给一个根查找程序,以调整 ef。这个函数对象的形式如下:
struct NormalizeNer {
NormalizeNer(lat3d &lat) : lat(lat) {}
double operator()(const double ef) {
lat.setEf(ef);
// some other irrelevant code
}
public:
lat3d lat;
};
将函数对象实例化,并作为参数传递给寻找根的函数findRoot:
lat3d lattice();
NormalizeNer normalize(lattice);
double efroot = findRoot(normalize, eflo, efhi, eftolerance);
这段代码是可行的,但是在第四行使用我的类成员函数lat.setEf(ef)只会更新lat3d对象的副本中的lat.Ef。我想要能够通过引用传递lat3d对象,以便稍后可以获取最新更新的Ef值:
double lastEf = lattice.Ef
有什么办法可以在这里通过引用传递参数吗?显然,在第2行中使用lat3d & lat并不起作用。谢谢!