Несколько полезных советов.
Ниже представлен "свод правил", который стоит учитывать при изучении
С++. Когда вы станете более опытными, то на базе этих правил сможете
сформулировать свои собственные, которые будут более подходить для ваших
задач и более соответствовать вашему стилю программирования. Сознательно
выбраны очень простые правила, и в них опущены подробности. Не следует
воспринимать их слишком буквально. Хорошая программа требует и ума, и
вкуса, и терпения. С первого раза обычно она не получается, поэтому
экспериментируйте! Итак, свод правил.
- [1] Когда вы пишите программу, то создаете конкретные представления
тех понятий, которые использовались в решении поставленной
задачи. Структура программы должна отражать эти понятия настолько
явно, насколько это возможно.
- [a] Если вы считаете "нечто" отдельным понятием, то сделайте его
классом.
- [b] Если вы считаете "нечто" существующим независимо, то сделайте
его объектом некоторого класса.
- [c] Если два класса имеют нечто существенное, и оно является для них
общим, то выразите эту общность с помощью базового класса.
- [d] Если класс является контейнером некоторых объектов, сделайте
его шаблонным классом.
- [2] Если определяется класс, который не реализует математических объектов
вроде матриц или комплексных чисел и не является типом низкого
уровня наподобие связанного списка, то:
- [а] Не используйте глобальных данных.
- [b] Не используйте глобальных функций (не членов).
- [c] Не используйте общих данных-членов.
- [d] Не используйте функции friend (но только для того, чтобы
избежать [а], [b] или [c]).
- [e] Не обращайтесь к данным-членам другого объекта непосредственно.
- [f] Не заводите в классе "поле типа"; используйте виртуальные
функции.
- [g] Используйте функции-подстановки только как средство
значительной оптимизации.