syxme
@syxme

C++ интерфейсы как в java, декларация внутри функции как сделать красиво?

Есть вируальный класс с++
class IEvent {
	public:
		virtual void onClick(int index) = 0;
};


На данный момент создаю его и устанавливаю вот так:
struct audioAdapterArtistEvents : AdapterAudio::IEvent {
		PlaylistGUIManager &base;

		explicit audioAdapterArtistEvents(PlaylistGUIManager &base) : base(base) {};

		void onClick(int index) override {
			base.mediaServiceBase->getPlaySession()->BasePlayAudio(base.mAudioAdapter.visibleList,index);
		}
	};

	mAudioAdapter.onClickArtist(new audioAdapterArtistEvents(*this));


Но выглядит это ну не очень красиво, хотелось бы как в java, например
mAudioAdapter.onClickArtist(new AdapterAudio.IEvent() {
     @Override
     public void onClick(int index) {
                //....
    }
});


Можно ли как то в с++ декларировать класс внутри параметра функции как в java?
  • Вопрос задан
  • 57 просмотров
Решения вопроса 1
vabka
@vabka
Токсичный шарпист
Можно ли как то в с++ декларировать класс внутри параметра функции как в java?

Нет, нельзя.
Но для подобных штук вы можете использовать лямбды :)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы