Выбрать главу

14. Выберите первую функцию display( ) в списке и щёлкните на маленькой пиктограммке слева от неё.

При этом в окне редактора вы увидите файл Student.срр, причём курсор окажется на функции display( ). Выбор второй функции display( ) перенесёт нас к этой функции в файле GraduateStudent.срр.

Свойства проекта настроены по умолчанию. Для их изменения вы можете выполнить следующее.

15. Выберите команду меню Проект => Параметры проекта ( Project => Project Options ).

Например, вы можете выбрать вкладку настроек компилятора и отключить генерацию отладочной информации или изменить другие настройки.

Я думаю, вы убедитесь, что разбиение программы на отдельные исходные файлы облегчает её редактирование, внесение изменений и отладку.

_________________

267 стр. Глава 22. Разложение классов

Часть 5. ПОЛЕЗНЫЕ ОСОБЕННОСТИ...269

ОГЛАВЛЕНИЕ

СОДЕРЖАНИЕ

Глава 23. ОПЕРАТОР ПРИСВОЕНИЯ...271

Глава 24. ИСПОЛЬЗОВАНИЕ ПОТОКОВ ВВОДА-ВЫВОДА...277

Глава 25. ОБРАБОТКА ОШИБОК И ИСКЛЮЧЕНИЯ...290

Глава 26. МНОЖЕСТВЕННОЕ НАСЛЕДОВАНИЕ...298

Глава 27. ШАБЛОНЫ С++...308

Глава 28. СТАНДАРТНАЯ БИБЛИОТЕКА ШАБЛОНОВ...317 

        В этой части...

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

Освоив предыдущие части книги, вы приобрели самые необходимые знания по созданию качественной объектно-ориентированной программы. Конечно же, С++ весьма обширный и богатый разнообразными возможностями язык, и осталось ещё немало особенностей, которые требуют освещения. В этой части представлено краткое описание дополнительных и, по моему мнению, наиболее полезных возможностей языка, которые стоит использовать в первую очередь ( хотя это и не обязательно ).

Глава 23. ОПЕРАТОР ПРИСВОЕНИЯ...271

ОГЛАВЛЕНИЕ

        В этой главе...

►Сравнение операторов и функций 271

►Потоковые операторы 272

►Мелкое копирование — глубокие проблемы 272

►Переопределение оператора присвоения 273

►Защита от копирования 276

Встроенные ( intrinsic ) типы данных — это типы данных, которые компилятор "знает" изначально, такие как int, float, double и другие, а также различные типы указателей. В главах 3, "Выполнение математических операций", и 4, "Выполнение логических операций", были описаны операторы, определённые в С++ для встроенных типов. С++ позволяет программисту определять операторы для создаваемых им классов в дополнение к встроенным операторам. Эта возможность называется перегрузкой операторов.

Обычно перегрузка операторов необязательна и не используется новичками в программировании на С++. Более того, многие опытные программисты вообще считают данную возможность излишней и опасной. Однако есть один оператор, который вы будете просто вынуждены переопределять: это оператор присвоения.

►Сравнение операторов и функций...271

Оператор представляет собой не более чем встроенную функцию с определённым синтаксисом. Так, сложение а+b можно рассматривать, как если бы это была запись operator+( a , b ). С++ даёт каждому оператору имя в стиле функции. Такое функциональное имя оператора состоит из ключевого слова operator, за которым следует символ оператора, а за ним — соответствующие типы аргументов. Например, оператор +, который суммирует целые числа и возвращает целое число, имеет имя int operator+( int , int ).

Любой оператор может быть определён для пользовательского класса. Так, я могу создать Complex operator*( Complex& , Complex& ), который позволит мне умножить два объекта типа Complex. Новый оператор может иметь ту же семантику, что и перегружаемый, но не обязан. При перегрузке операторов действуют следующие правила.