C++ (Qt)bool QUApplication::notify( QObject* o, QEvent* e ){ ... case QEvent::KeyPress: if( QWidget::keyboardGrabber() == w ) // keyboardGrabber статический же. :) { return w->QWidget::event( e ); } ...}
C++ (Qt)virtual bool QWidget::event(QEvent*)» is protected
#include <iostream>using namespace std;struct Example{ // мы можем запустить этот метод не как метод, а как обычную свободную функцию void foo(int) { cout<<"Example::foo(int);\n"; }};int main(){ std::cout << "Hello, world!\n"; typedef void(*Free)(Example*, int); typedef void(Example::*Method)(int); //для того, что бы запустить метод, как свободную функцию //нужно выполнить преобразования метода в свободную функцию Method m= &Example::foo; //для этого возьмем адрес функции-члена таким образом, //что бы компилятор забыл изначальный тип функции-члена //это позволит обойти защиту компилятора при некорректном //с точки зрения компилятора преобразовании типов функции-члена к функции void* proxy = (void*)&m; //теперь извлекаем объект обратно, преобразовывая его тип к типу функции Free f = *((Free*)proxy); Example ex; //теперь, если ваша теория верна, мы можем запустить функцию, //передав первым аргументом тот самый "не видимый" параметр this //а следом все прочие аргуметы f(&ex,10); }