Если вы хотите, чтобы функция шаблона была другом, вы должны указать это в объявлении класса. Измените строку, которая объявляет функцию друга, следующим образом:
template <typename T>
friend int ask_runUI(T& a_ui);
Теперь, если ваш класс сам является шаблоном, все становится намного сложнее. Шаблон друзей не тривиально сделать правильно. Для этого я отсылаю вас к тому, что C ++ FAQ Lite говорит по этому вопросу.