struct obj1 {
virtual void execute() = 0;
}
struct obj2 : obj1 {
void execute(){}
}
struct obj3 : obj2 {
void execute(){}
}
int main(){
obj1* obj = new obj3();
void (obj1::*func)() = obj1::execute;
(obj1->*func)();
}
Что будет?
obj->execute()
, т.е. виртуальный вызов конечного переопределения для функции obj1::execute
в объекте класса obj3. См. eelis.net/c++draft/expr.call#3Я не понимаю как это будет работать с классами наследниками и виртуальной функцией.