История изменений
Исправление 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()