Здравствуйте, Sergeem, Вы писали:
S>Здравствуйте, Denwer, Вы писали:
D>>Привет всем.
D>>Вот у меня какое предложение.
D>>Очень часте приходится например добавлять какуе то функцию, для класса, при этом приходится ее делать либо как член класса, тогда нужно еще переписать все конструкторы и оператор присваивания, либо не как член класса, тогда все протектед данные будут не видны.
S>Вот это я не понял! Зачем переписывать конструкторы, если мы добавляем новую функцию в класс??!
Я тоже не уверен, что понял Denwer'а правильно, но если что, он меня поправит.
Допустим, один разработчик разработал библиотеку классов A, B, C, D... (и, для определенности, класс A является базовым классом иерархии). А другой разработчик решил ее использовать. И все ему в этой библиотеке нравится, но... если бы класс A имел дополнительно еще метод do_something(), который делает очень полезные вещи, было бы совсем супер! Можно конечно сделать свой класс X, который наследуется от A и расширяет функциональность желанным методом do_something(), но классы B, C, D (которые наследуются от A, а не от X) не получат желаемой функциональности. Можно взять исходники библиотеки и добавить этот злосчастный метод прямо в A. Но, по-первых, исходники могут быть недоступны, а во-вторых, первый разработчик может продолжительное время сопровождать свою библиотеку исправляя и добавляя баги и фичи, и с каждым новым релизом библиотеки, второму разработчику приходится заново все добавлять.
Т.е., хотелось бы иметь средства, которые позволят легко расширять (возможно, чужие) библиотеки (для своих нужд) причем, так, чтобы эти расширения и сами библиотеки можно было бы легко сопровождать, и, желательно, независимо друг от друга.
Denwer, я правильно понял?
--
Дмитрий