5
我有一個仿函數,它將一個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不起作用。謝謝!
謝謝!這解決了問題。 – Tyler 2011-06-12 19:55:12