Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Глава 23. Разложение классов 261
сконцентрироваться на работе этой функции, не волнуясь о внутренних особен- ностях разных типов счетов. Задача, которую решает Budget3, довольно проста. Но сравнение разных вер- сий программы позволит понять отличия между чисто функциональной программой и ее развитием через объектно-основанную программу без (Budget2) в полностью объектно-ориентированную программу
Часть IV. Наследование ЧастьV
Полезные особенности
В этой книге не ставится цель сделать из вас профессионала в области C++, а всего лишь предполагается дать вам твердое понимание основ C++ иобъектно-ориентированногопрограммирования. В предыдущих частях книги вы приобрели самые необходимые знания по созданию качественной объектно-ориентированнойпрограммы. Конечно оке, C++ весьма обширный и богатый разнообразнымивозможностямиязык, и осталось еще немала особенностей, которые требуют освещения. В этой части представлено краткое описание дополнительных и, по моему мнению, наиболее полезных возможностей языка, которые стоит использовать в первую очередь (хотя это и не обязательно). Глава 24 Перегрузка операторов операторов: давайте жить в гармонии Операторная функция А подробнее? Операторы как функции-члены Еще одна перегрузка операторов с помощью неявного преобразования типов
пециальные короткие символы, которые вы используете в C++ (+, -, & и т.п.) называются простыми операторами. Эти операторы (вернее, их действия) уже определены для таких встроенных типов, как int , double и char (для некоторых ти- пов отдельные операторы не определены). Эти операторы, конечно же, не определены для классов, которые создали вы сами (эти классы называются пользовательскими). Вероятно, нам повезло: C++ позволяет определять, что именно будут означать операторы, если их применить к пользовательским классам. Эта особенность, назы- ваемая перегрузкой операторов, и является темой данной главы. Я не зря сказал "вероятно". Обычно перегрузка операторов не обязательна и, бо- лее того, противопоказана новичкам в программировании на C++. Следует также от- метить, что многие опытные программисты на C++ считают перегрузку операторов не такой уж хорошей идеей. Так что, если вы не чувствуете себя в силах освоить эту тему, можете пропустить данную главу и вернуться к ней позже, когда вам станет ин- тересно и вы почувствуете себя готовым понять ее. Итак, я вас предупредил; тем не менее вы все-таки хотите знать, как перегружать оператор присвоения, а также операторы и К счастью, существуют шаб- лоны, которым можно следовать для переопределения этих трех операторов (что зна- чительно облегчает дело). Поскольку я не хочу, чтобы вы запутались в этих трех опе- раторах, я не для каждого из них отдельной главы. Позвольте повториться (мне не нравится получать гневные письма с упомина- нием всей моей родословной из-за того, что кто-то перегрузил какой-то опера- тор и теперь не знает, как заставить программу снова работать): перегрузка оператора может привести к которые очень трудно выявить. Еще раз проверьте, знаете ли вы, что делаете, прежде чем что-то переопределять.
Язык C++ что пользовательские типы имеют такие же права, как и встроенные, например int или char. Коль скоро операторы определены для встроен- ных типов, почему бы не позволить определять их для пользовательских типов? |
Последнее изменение этой страницы: 2019-04-19; Просмотров: 171; Нарушение авторского права страницы