Язык программирования C++ от Страуструпа

Несколько полезных советов


Ниже представлен "свод правил", который стоит учитывать при изучении С++. Когда вы станете более опытными, то на базе этих правил сможете сформулировать свои собственные, которые будут более подходить для ваших задач и более соответствовать вашему стилю программирования. Сознательно выбраны очень простые правила, и в них опущены подробности. Не следует воспринимать их слишком буквально.  Хорошая программа требует и ума, и вкуса, и терпения. С первого раза обычно она не получается, поэтому экспериментируйте! Итак, свод правил.

[1]    Когда вы пишите программу, то создаете конкретные представления     тех понятий, которые использовались в решении поставленной     задачи. Структура программы должна отражать эти понятия настолько     явно, насколько это возможно.

 [a]   Если вы считаете "нечто" отдельным понятием, то сделайте его         классом.

 [b]   Если вы считаете "нечто" существующим независимо, то сделайте его объектом некоторого класса.

 [c]    Если два класса имеют нечто существенное, и оно является для них общим, то выразите эту общность с помощью базового класса.

 [d]   Если класс является контейнером некоторых объектов, сделайте его шаблонным классом.

[2]    Если определяется класс, который не реализует математических объектов вроде матриц или комплексных чисел и не является типом низкого уровня наподобие связанного списка, то:

 [а]   Не используйте глобальных данных.

 [b]   Не используйте глобальных функций (не членов).

 [c]    Не используйте общих данных-членов.

 [d]   Не используйте функции friend (но только для того, чтобы избежать [а], [b] или [c]).

 [e]    Не обращайтесь к данным-членам другого объекта непосредственно.

 [f]    Не заводите в классе "поле типа"; используйте виртуальные функции.

 [g]    Используйте функции-подстановки только как средство значительной оптимизации.



Содержание раздела