Typ tablicy wskaźników na funkcje jest zły. Powinien wyglądać tak:
void (*ptr_function[4])(double&, double&) { &addition, &subtraction, &division, & multiplication };
Wywołanie funkcji przez wskaźnik też jest złe:
(*ptr_function[*ptr_choice])(component1, component2);
Pobranie adresu funkcji można wykonać z ampersandem jak i bez.
Indeksy tablic zaczynaja się od zera, więc powinieneś zmienić numerację opcji w menu lub kompensować to, odejmując jedynkę od numeru opcji.