Делегаты на C++ | страница 14



Хочется отметить, что рассмотренный нами пример реализации делегатов может служить иллюстрацией как сильных, так и слабых сторон языка C++. Слабая сторона C++ - это его сложность. Особенно хорошо она заметна при реализации библиотек на базе шаблонов. Их код трудно читать и ещё труднее писать, так как в них семантическая сложность усугубляется сложностью синтаксической. Сильной же стороной C++ является совершенно невероятная гибкость этого языка. В рамках C++ можно реализовать и бесшовно интегрировать в язык самые разные возможности. Причём сделать это удаётся даже несмотря на грубейшие ошибки и недоработки разработчиков некоторых компиляторов.


Комментарии:

наследование операторов

›Дело в том, что в языке C++ операторы не наследуются.

Это не верно по крайней мере для MSVC++. Более того этот метод используется при написании функтора из библиотеки Loki http://fara.cs.uni-potsdam.de/~kaufmann/?page=lokiport (файл Functor.h), см. также http://www.geocities.com/rani_sharoni/LokiPort.html (VC7) и конечно оригинал http://moderncppdesign.com/

>#include ‹stdio.h›

>int main() {

> struct base {

>  void operator()(int x) { printf("void base::operator()(%d)\n",x); }

> };

> struct derived: base {};

> derived()(5);

> return 0;

>}

yaroslav_v 1.5.2003 9:55