Но Вы уже написали ответ на Ваш вопрос.
Вы можете просто позвонить:
dao.updateUser(user).subscribe()
Если вы хотите манипулировать / переходить между потоками, вы делаете что-то похожее на пример 1.
В C++ Вы не можете назвать функцию тем же именем как класс/структуру/определение типа. У Вас есть класс под названием "Плеер" и таким образом, класс HalfSet имеет функцию под названием "Плеер" ("Плеер *Плеер ()"). Необходимо переименовать один из них (вероятно, Плеер изменяющегося HalfSet () к getPlayer () или somesuch).
Ваша проблема состоит в том, что имена ищутся в объемах. В объявлении HalfSet:: setPlayer (Плеер*), неполное имя Плеер должно искаться. Первым объемом, который попробовали, является класс HalfSet. В том объеме поиск Плеера находит функциональный HalfSet:: Плеер, не глобальный класс:: Плеер.
Решение состоит в том, чтобы использовать полностью определенное имя:: Плеер. Это говорит компилятор, которые определяют объем для использования для поиска (глобального), который в свою очередь означает HalfSet:: Плеер даже не рассматривают.