es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Necesitas pasar la función bubblesort como parámetro a sortingRunTime 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 a sortingRunTime sin llamarla.

Comments are closed.