通过引用将对象参数传递给仿函数
问题描述:
我有一个仿函数,它将一个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)在第4行只更新lat3d对象副本中的lat.Ef。我希望能够通过引用传递的lat3d对象,所以我可以在以后走出的EF最后更新值:
double lastEf = lattice.Ef
任何想法如何通过引用路过这里?显然在第2行使用lat3d & lat不起作用。谢谢!
答
成员变量lat
应该是一个参考,以及:
lat3d ⪫
在当前的代码中,NormalizeNer
构造函数接受一个参考,但随后进行复印。
谢谢!这解决了问题。 – Tyler 2011-06-12 19:55:12