Глава 3
Объектно-ориентированные анализ и проектирование
*
Представьте характерную для нашего времени ситуацию:'некая фирма, организующая курсы обучения работе с персональными компьютерами, рассылает по электронной почте письма примерно такого содержания: "Ввиду высокого общественного спроса мы будем шире предлагать учебные занятия по работе с WordPerfect, DOS, Internet и т. д. Если вы чувствуете, что вам необходимо обучение в других областях, не сочтите за труд подсказать нам тему курсов". И в ответ от людей, в лучшем случае владеющих некоторыми навыками работы с текстовыми процессорами и электронной почтой, фирма получает заявления: "Я хочу изучить C++".
C++ — помимо того, что это язык программирования — это еще и своего рода пароль. За несколько последних лет жаргон, бывший достоянием компьютерных умников, стал общеупотребительным и завоевал средства массовой информации. Наверное, вы не удивитесь, когда человек, купивший вашу программу, спросит: "А на каком языке она написана, на C++?" Самые завзятые гуманитарии, узнав о том, что вы программист, запросто могут поинтересоваться: "Вы пишете на C++?" И в любом случайном разговоре о C++ неизбежно всплывет еще одно словечко — "объектно-ориентированный".
Распространено заблуждение, что программирование на C++ — синоним объектно-ориентированного программирования. Как вы, вероятно, уже знаете, это далеко не так. C++ представляет из себя язык с механизмами, поддерживающими объектно-ориентированную философию ни больше, ни меньше. Личное дело программиста, воспользуется ли он преимуществами этих механизмов или нет. Пристальное исследование "несущих конструкций" классов, таких как конструкторы, деструкторы и функции-члены, вы найдете в главе 14 "Базовые концепции классов".