class VotingForm { private: void (VotingForm::*on_wake)() = Q_NULLPTR; } Tak ją wołam:
if (on_wake != Q_NULLPTR) { on_wake(); } Kompilator krzyczy to:
C:\Users\dijun\Local\GitHub\RootForPremier\PremierMeetingControl\votingform.cpp:152: error: must use '.*' or '->*' to call pointer-to-member function in '((VotingForm*)this)->VotingForm::on_wake (...)', e.g. '(... ->* ((VotingForm*)this)->VotingForm::on_wake) (...)' on_wake(); ^ Nie za bardzo rozumiem jak mam odpalić tę funkcję, kilku opcji już próbowałem.
@Dijuna: Generalnie nie korzystam z wskaźników do metod bo zazwyczaj są duże, (co najmniej 2*sizeof(void*)), póki nie są constexpr to bym ich omijał. Nie wiem ile zajmują zwykłe lambdy ale też są bezstanowe lambdy które można rzutować na wskaźniki do funkcji. Ciekawi mnie też poco ci to skoro piszesz w Qt ( ͡°͜ʖ͡°)
@Dijuna: Ja do tej pory jechałem na enumach i switchach, bo jakoś tak bardzo to Qt way, a jak bym potrzebował coś więcej to chyba bym poszedł w QStateMachine.
Taka zmienna:
class VotingForm {private:
void (VotingForm::*on_wake)() = Q_NULLPTR;
}
Tak ją wołam:
if (on_wake != Q_NULLPTR) {on_wake();
}
Kompilator krzyczy to:
C:\Users\dijun\Local\GitHub\RootForPremier\PremierMeetingControl\votingform.cpp:152: error: must use '.*' or '->*' to call pointer-to-member function in '((VotingForm*)this)->VotingForm::on_wake (...)', e.g. '(... ->* ((VotingForm*)this)->VotingForm::on_wake) (...)'on_wake();
^
Nie za bardzo rozumiem jak mam odpalić tę funkcję, kilku opcji już próbowałem.
this->*on_wake();@lionbest: mam ten sam błąd...
@TheNewIcek: jestem w metodzie obiektu tej klasy
(this->*(this->on_wake))():D
Ciekawi mnie też poco ci to skoro piszesz w Qt ( ͡° ͜ʖ ͡°)