Стандарт Ansi C++ при объявлении указателя на функцию класса (не
статическую) предусматривает использование полной квалификации. При этом
при вызове функции требуется явно передать экземпляр класса.
В С++Builder введено дополнительное ключевое слово _ _ closure, которая упрощает весь этот механизм. По сути дела объявляется не просто указатель на функцию класса, а своего рода указатель на функцию экземпляра класса.
В данном случае в указателе храниться не только указатель на функцию, но и указатель на объект. Поэтому при вызове функции явной передачи экземпляра класса не требуется.
PS. "Верным курсом идем, товарищи" . В VC++ версии 7(Net) также появилось нечто подобное, только название другое _ _ delegate , а также многое другое, что уже давно изначально использовалось в C++Builder. и называется это Managed Extensions for C++ .
В С++Builder введено дополнительное ключевое слово _ _ closure, которая упрощает весь этот механизм. По сути дела объявляется не просто указатель на функцию класса, а своего рода указатель на функцию экземпляра класса.
код C++ | ||||||||||||
|
В данном случае в указателе храниться не только указатель на функцию, но и указатель на объект. Поэтому при вызове функции явной передачи экземпляра класса не требуется.
PS. "Верным курсом идем, товарищи" . В VC++ версии 7(Net) также появилось нечто подобное, только название другое _ _ delegate , а также многое другое, что уже давно изначально использовалось в C++Builder. и называется это Managed Extensions for C++ .
Комментариев нет:
Отправить комментарий