Есть вируальный класс с++
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?