Манипулиране на методи на клас - Софтуерни продукти

Недостатъците на библиотеката VCL често се наричат ​​нейния делфичен произход, което води до факта, че в някои точки поведението на обектите от клас VCL не съответства на стандарта C ++. Тези точки, по-специално, включват особения ред на извикване на конструкторите на базовите "делфийски" класове, поведението на виртуална функция, когато тя е извикана в тялото на конструктор, ограниченията, наложени при използване на множествено наследяване (преди появата на C ++ Builder 6, разговорът не беше само за ограничение, а за недопустимостта на използването на множествено наследяване за VCL класове).

Не мислете, че използването на указател към метод на обект е тясно ограничено само до обхвата на класовете VCL. Такива указатели, макар и не често, се срещат в практиката на програмистите и са доста полезни. Има изпълнения на такива указатели, използващи стандартен C ++. [Александреску А. Модерен дизайн в C ++, М. Издателство „Уилямс“, 2002.] В C ++ Builder програмистът получава тези възможности безплатно, като вид компенсация за „морални щети“ в резултат на загубата на съвместимост със стандарта.

За да илюстрираме тези възможности, нека създадем прост проект в една форма. Поставете пет бутона върху формуляра и редактирайте Caption с тях в съответствие със задачите, които ще се опитаме да демонстрираме.

Ето минималната програма, която трябва да изпълним:

В съответствие с тези задачи, нашата форма ще приеме следната форма:

продукти

Фигура 1. Външен вид на проектната форма.

При натискане на най-горния бутон методът Button1Click ще бъде извикан по обичайния стандартен начин, при натискане на останалите четири бутона ще бъдат изпълнени действията, съответстващи на задачите.