LINUX.ORG.RU

История изменений

Исправление www_linux_org_ru, (текущая версия) :

С формальной точки зрения вообще не оно:) Но делает то что надо со 100% внешней мимикрией :)

1. nobody cares насчет формальной точки зрения

2. с внешней мимикрией тут тоже не все гладко

рассмотрим, скажем, внешнюю библиотеку proprietory.h без исходников, предоставляющую функцию int my_rand(); пусть, также, у нас есть некое количество кода, заюзавшее этот библиотечный my_rand; далее стоит задача ДОписать свой char* my_rand() так, чтобы my_rand стал полиморфен по возвращаемому значению, а прошлый наш код переписывать не пришлось

в принципе, это, наверно, реалистично, если обернуть proprietory.h в свой инклюд, где подменить реализацию на мимикрию (но перекомпилировать наш прошлый код все же наверно придется...)

далее можно рассмотреть более интересный случай, когда есть proprietory.hxx и в ней нестатический метод int SomeClass::my_rand(); тут опять можно попробовать выкрутиться перегрузкой оператора ->, но результаты этот борьбы с с++ уже плохо предсказуемы

и наконец, похоже наиболее сложный случай int SomePolymorphicClass::my_rand()

Исправление www_linux_org_ru, :

С формальной точки зрения вообще не оно:) Но делает то что надо со 100% внешней мимикрией :)

1. nobody cares насчет формальной точки зрения

2. с внешней мимикрией тут тоже не все гладко

рассмотрим, скажем, внешнюю библиотеку proprietory.h без исходников, предоставляющую функцию int my_rand(); пусть, также, у нас есть некое количество кода, заюзавшее этот библиотечный my_rand; далее стоит задача ДОписать свой char* my_rand() так, чтобы my_rand стал полиморфен по возвращаемому значению, а прошлый наш код переписывать не пришлось

в принципе, это, наверно, реалистично, если обернуть proprietory.h в свой инклюд, где подменить реализацию на мимикрию (но перекомпилировать наш прошлый код все же наверно придется...)

далее можно рассмотреть более интересный случай, когда есть roprietory.hxx и в ней нестатический метод int SomeClass::my_rand(); тут опять можно попробовать выкрутиться перегрузкой оператора ->, но результаты этот борьбы с с++ уже плохо предсказуемы

и наконец, похоже наиболее сложный случай int SomePolymorphicClass::my_rand()

Исправление www_linux_org_ru, :

С формальной точки зрения вообще не оно:) Но делает то что надо со 100% внешней мимикрией :)

1. nobody cares насчет формальной точки зрения

2. с внешней мимикрией тут тоже не все гладко

рассмотрим, скажем, внешнюю библиотеку proprietory.h без исходников, предоставляющую функцию int my_rand(); пусть, также, у нас есть некое количество кода, заюзавшее этот библиотечный my_rand; далее стоит задача ДОписать свой char* my_rand() так, чтобы my_rand стал полиморфен по возвращаемому значению, а прошлый наш код переписывать не пришлось

в принципе, это, наверно, реалистично, если обернуть proprietory.h в свой инклюд, где подменить реализацию на мимикрию (но перекомпилировать его все же наверно придется...)

далее можно рассмотреть более интересный случай, когда есть roprietory.hxx и в ней нестатический метод int SomeClass::my_rand(); тут опять можно попробовать выкрутиться перегрузкой оператора ->, но результаты этот борьбы с с++ уже плохо предсказуемы

и наконец, похоже наиболее сложный случай int SomePolymorphicClass::my_rand()

Исходная версия www_linux_org_ru, :

С формальной точки зрения вообще не оно:) Но делает то что надо со 100% внешней мимикрией :)

1. nobody cares насчет формальной точки зрения

2. с внешней мимикрией тут тоже не все гладко

рассмотрим, скажем, внешнюю библиотеку proprietory.h без исходников, предоставляющую функцию int my_rand(); пусть, также, у нас есть некое количество кода, заюзавшее этот библиотечный my_rand; далее стоит задача ДОписать свой char* my_rand() так, чтобы my_rand стал полиморфен по возвращаемому значению, а прошлый наш код переписывать не пришлось

в принципе, это, наверно, реалистично, если обернуть proprietory.h в свой инклюд, где подменить реализацию на мимикрию

далее можно рассмотреть более интересный случай, когда есть roprietory.hxx и в ней нестатический метод int SomeClass::my_rand(); тут опять можно попробовать выкрутиться перегрузкой оператора ->, но результаты этот борьбы с с++ уже плохо предсказуемы

и наконец, похоже наиболее сложный случай int SomePolymorphicClass::my_rand()