Я переехал в новый Uni. В моей старой программе мы сильно сосредоточились на Java, но в новом Uni мы уделяем большое внимание C++ и нет вводного класса. Я перехожу к учебникам C++, чтобы познакомиться, но я хотел бы закончить эту задачу.Полиморфизм и обратные вызовы, что здесь происходит?
В основном мы должны написать программу, которая вычислит числовую производную, которая не является проблемой, я просто не в полной мере понять данный код:
Мы должны использовать два понятия: полиморфизм и обратного
Код:
double myfunction(const double x){
...
}
class Der{
...
};
int main(){
double x, h;
Der::derivative(Der(),x,h)
Der::derivative(myfunction,x,h)
derivative(Der(),x,h)
derivative(myfunction,x,h)
return 0;
}
ИТАК первых двух вызовов я не понимаю, что Der()
означает, что мы передаем здесь не похож на экземпляр объекта. Я знаком с передачей функций в качестве аргументов, но не полностью уверен, почему передается либо объект, либо функция, если метод derivative
не вычисляет его из аргументов x, h
.
Во вторых двух строках я не уверен, в чем смысл? Если мне нужна другая функция derivative
, чем то, что предназначено для myFunction
?
Похоже, что они пытаются чему-то научиться в операторе разрешения области. Не видя определения класса Der, похоже, что у него может быть статическая функция с именем производная, которая имеет (по крайней мере) две перегрузки. Тот, который принимает объект Der (который построен с помощью Der()) и тот, который принимает указатель на функцию (myfunction). В предположении есть также производная функция с двумя прототипами в пределах области действия кода выше. –