Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Глава 23. Разложение классов 261




сконцентрироваться на работе этой функции, не волнуясь о внутренних особен- ностях разных типов счетов.

Задача, которую решает Budget3, довольно проста. Но сравнение разных вер- сий  программы                                              позволит понять отличия между чисто функциональной программой                 и ее развитием через объектно-основанную программу без   (Budget2) в полностью объектно-ориентированную программу

 

 


Часть IV. Наследование


ЧастьV

 


Полезные особенности


В этой книге не ставится цель сделать из вас профессионала в области C++, а всего лишь предполагается дать вам твердое понимание основ C++ иобъектно-ориентированногопрограммирования.

В предыдущих частях книги вы приобрели самые необходимые знания по созданию качественной

объектно-ориентированнойпрограммы.

Конечно оке, C++ весьма обширный и богатый разнообразнымивозможностямиязык,

и осталось еще немала особенностей, которые требуют

освещения. В этой части представлено краткое описание дополнительных и, по моему мнению,

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


Глава 24



Перегрузка операторов

операторов: давайте жить в гармонии Операторная функция

А подробнее?

Операторы как функции-члены Еще одна перегрузка

операторов с помощью неявного преобразования типов

 

пециальные короткие символы, которые вы используете в C++ (+, -, & и т.п.) называются простыми операторами. Эти операторы (вернее, их действия) уже определены для таких встроенных типов, как int , double и char (для некоторых ти- пов отдельные операторы не определены). Эти операторы, конечно же, не определены

для классов, которые создали вы сами (эти классы называются пользовательскими).

Вероятно, нам повезло: C++ позволяет определять, что именно будут означать операторы, если их применить к пользовательским классам. Эта особенность, назы- ваемая перегрузкой операторов, и является темой данной главы.

Я не зря сказал "вероятно". Обычно перегрузка операторов не обязательна и, бо- лее того, противопоказана новичкам в программировании на C++. Следует также от- метить, что многие опытные программисты на C++ считают перегрузку операторов не такой уж хорошей идеей. Так что, если вы не чувствуете себя в силах освоить эту тему, можете пропустить данную главу и вернуться к ней позже, когда вам станет ин- тересно и вы почувствуете себя готовым понять ее.

Итак, я вас предупредил; тем не менее вы все-таки хотите знать, как перегружать оператор присвоения, а  также  операторы и                                        К счастью, существуют шаб- лоны, которым можно следовать для переопределения этих трех операторов (что зна- чительно облегчает дело). Поскольку я не хочу, чтобы вы запутались в этих трех опе- раторах, я не        для каждого из них отдельной главы.

Позвольте повториться (мне не нравится получать гневные письма с упомина- нием всей моей родословной из-за того, что кто-то перегрузил какой-то опера- тор и теперь не знает, как заставить программу снова работать): перегрузка оператора может привести к                                      которые очень трудно выявить. Еще раз проверьте, знаете ли вы, что делаете, прежде чем что-то переопределять.

 

 

Язык  C++                    что пользовательские типы имеют такие же права, как и встроенные, например int или char. Коль скоро операторы определены для встроен- ных типов, почему бы не позволить определять их для пользовательских типов?


Поделиться:



Последнее изменение этой страницы: 2019-04-19; Просмотров: 171; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.008 с.)
Главная | Случайная страница | Обратная связь