Tyl*_*ler 5 c++ pass-by-reference functor
我有一个将lat3d对象作为参数的仿函数,我想将这个仿函数传递给调整ef的根查找例程.仿函数看起来像:
struct NormalizeNer {
NormalizeNer(lat3d &lat) : lat(lat) {}
double operator()(const double ef) {
lat.setEf(ef);
// some other irrelevant code
}
public:
lat3d lat;
};
Run Code Online (Sandbox Code Playgroud)
仿函数被实例化并传递给根查找例程findRoot,如下所示:
lat3d lattice();
NormalizeNer normalize(lattice);
double efroot = findRoot(normalize, eflo, efhi, eftolerance);
Run Code Online (Sandbox Code Playgroud)
这是有效的,除了在第4行使用我的类成员函数lat.setEf(ef)只更新lat.Ef在lat3d对象的副本中.我希望能够通过引用传递lat3d对象,以便稍后我可以获得Ef的最后更新值:
double lastEf = lattice.Ef
Run Code Online (Sandbox Code Playgroud)
任何想法如何通过引用传递到这里?显然在第2行使用lat3d&lat不起作用.谢谢!
成员变量也lat应该是一个引用:
lat3d ⪫
Run Code Online (Sandbox Code Playgroud)
在当前代码中,NormalizeNer构造函数接受引用但随后复制.
| 归档时间: |
|
| 查看次数: |
949 次 |
| 最近记录: |