Введение в язык Си++

         

Правила Правой Руки (*1)


Здесь приводится набор правил, которых вам хорошо бы придерживаться изучая C++. Когда вы станете более опытны, вы можете превратить их в то, что будет подходить для вашего рода деятельности и вашего стиля программирования. Они умышленно сделаны очень простыми, поэтому подробности в них опущены. Не воспринимайте их чересчур буквально. Написание хороших программ требует ума, вкуса и терпения. Вы не собираетесь как следует понять это с самого начала; поэкспериментируйте!

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

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

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

[c] Если два класса имеют общим нечто существенное, сделайте его базовым классом. Почти все классы в вашей программе будут иметь нечто общее; заведите (почти) универсальный базовый класс, и разработайте его наиболее тщательно.

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

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

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

[c] Не используйте открытые данные-члены.

[d] Не используйте друзей, кроме как чтобы избежать [a], [b] или [c].

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

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

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



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