小编Nik*_*las的帖子

c ++将数据源函数作为参数传递

我有一个静态功能:

void E::createEP(std::list<double>* ret, double length, double (*getHeight)(double)) {
  // magic
  double sampleIntervall = //from magic

  double dist = 0;
  while (length - dist > -0.1) {
    ret->push_back(dist, (*getHeight)(dist));
    dist += sampleIntervall;
  }
}
Run Code Online (Sandbox Code Playgroud)

在不同的调用中,我有两个不同的函数作为getHeight()传递:

  • 数据库包装类中的一个非静态函数
  • 型的相同的对象内的函数EcreateEP()(对于"再创造"具有不同参数),其需要访问元素的字段,因此可以不是静态的,无论是.

以某种方式可以将非静态函数作为参数传递给静态函数吗?

如果没有,那么最优雅的替代方案是什么?我不想复制整个代码createEP().

c++ static function non-static c++11

3
推荐指数
1
解决办法
59
查看次数

标签 统计

c++ ×1

c++11 ×1

function ×1

non-static ×1

static ×1