¿Cómo pasar una función vacía como parámetro en C ++?
Estoy tratando de pasar una función como parámetro.
Aquí, creé una función sortingRunTime () que toma un array y una función como parámetro e imprime el tiempo de ejecución.
void sortingRunTime(int* arr, void(functiontocall)(int arr))
{
clock_t t = clock();
(*functiontocall)(arr);
t = clock() – t;
cout << (t / (float)CLOCKS_PER_SEC);
}
Tengo otra función void bubblesort(int* arr), que ordena el array y no devuelve nada. Además, tengo otras funciones de ordenamiento con el tipo de void y tengo que usar sortingRunTime () para todas las funciones de ordenamiento. En la función principal, tengo
sortingRunTime(arr, bubblesort (arr));
pero da un mensaje de error “el argumento de tipo “void” no es compatible con el parámetro de tipo “void (*)(int *arr)”. ¿Cómo puedo solucionarlo?
davy.ai
Necesitas pasar la función
bubblesort
como parámetro asortingRunTime
sin llamarla. Puedes hacer esto pasando el nombre de la función sin paréntesis, de esta manera:sortingRunTime(arr, bubblesort);
Esto pasará la función
bubblesort
como parámetro asortingRunTime
sin llamarla.