Показать сообщение отдельно

  #802  
Старый 01.03.2008, 02:09
Forcer
Постоянный
Регистрация: 12.04.2007
Сообщений: 413
Провел на форуме:
3578578

Репутация: 275
Отправить сообщение для Forcer с помощью ICQ
По умолчанию

Меня лично учили так(Дейтелы пишут также): нужно отделять определение(интерфейс) от реализации. В объявлении класса не должна находиться реализация методов. Т.е. внутри определения класса - только прототипы методов. Класс - это конечный программный продукт. Клиентам, которые пользуются классом, совсем не обязательно видеть, как реализованы методы. Им нужно знать какими методами можно воспользоваться и какие результаты будут получены. Поэтому внутри класса методы должны находиться в следующем порядке: сначала public, далее protected, и лишь потом private.
Цитата из Дейтелов:
Цитата:
Информация, являющаяся важной для интерфейса класса, должна включаться в заголовочный файл. Информация, которая будет использоваться только внутри класса и не потребуется клиентам, должна находиться в неопубликованном исходном файле. Это еще один пример принципа минимума привилегий.
Цитата:
Клиентам класса не обязательно видеть его исходный код для того, чтобы пользоваться этим классом.Однако клиентам необходимо иметь возможность компоноваться с объектным кодом класса.
Т.е. для класса создаем 2-а файла: .cpp(с реализацией методов) и .h(с объявлением класса). В свои включаем хедер, проект собираем вместе с файлом .cpp. Это не касается встроенных функций. Они должны находиться в объявлении класса. И ещё нужно использовать директивы препроцессора #ifndef, #define, #endif чтобы не допускать повторного включения заголовочных файлов.

P.S. Страуструп:
Цитата:
Хорошо спроектированный тип, определяемый пользователем, отличается от встроенного только тем, как он определён, а не тем, как он исползуется.

Последний раз редактировалось Forcer; 01.03.2008 в 02:15..
 
Ответить с цитированием