"Мюррэй Хилл, Бьярн Страустрап. Язык С++" - читать интересную книгу автора

комплексного числа, или тип низкого уровня, вроде связанного
списка, то:
[a] Не используйте глобальные данные.
[b] Не используйте глобальные функции (не члены).
[c] Не используйте открытые данные-члены.
[d] Не используйте друзей, кроме как чтобы избежать [a], [b]
или [c].
[e] Не обращайтесь к данным-членам или другим объектам
непосредственно.
[f] Не помещайте в класс "поле типа"; используйте виртуальные
функции.
[g] Не используйте inline-функции, кроме как средство
существенной оптимизации.

Замечания для программистов на C

Чем лучше кто-нибудь знает C, тем труднее окажется избежать
писания на C++ в стиле C, теряя, тем самым, некоторые возможные
выгоды C++. Поэтому проглядите, пожалуйста, раздел "Отличия от C" в
справочном руководстве (#с.15). Там указывается на области, в
которых C++ позволяет делать что-то лучше, чем C. Макросы (#define)
в C++ почти никогда не бывают необходимы; чтобы определять
провозглашаемые константы, используйте const (#2.4.6) или enum
(#2.4.7), и inline (#1.12) - чтобы избежать лишних расходов на
вызов функции. Старайтесь описывать все функции и типы всех
параметров - есть очень мало веских причин этого не делать.
Аналогично, практически нет причин описывать локальную переменную
не инициализируя ее, поскольку описание может появляться везде, где
может стоять оператор, - не описывайте переменную, пока она вам не
нужна. Не используйте malloc() - операция new (#3.2.6) делает ту же
работу лучше. Многие объединения не нуждаются в имени - используйте
безымянные объединения (#2.5.2).


Глава 1

Турне по C++

Единственный способ изучать новый язык
программирования - писать на нем программы.
- Брайэн Керниган

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