Здесь приводится набор правил, которых вам хорошо бы придерживаться изучая C++. Когда вы станете более опытны, вы можете превратить их в то, что будет подходить для вашего рода деятельности и вашего стиля программирования. Они умышленно сделаны очень простыми, поэтому подробности в них опущены. Не воспринимайте их чересчур буквально. Написание хороших программ требует ума, вкуса и терпения. Вы не собираетесь как следует понять это с самого начала; поэкспериментируйте!
Когда вы программируете, вы создаете конкретное представление идей вашего решения некоторой задачи. Пусть структура отражает эти идеи настолько явно, насколько это возможно:
Если вы считайте "это" отдельным понятием, сделайте его классом.
Если вы считайте "это" отдельным объектом, сделайте его объектом некоторого класса.
Если два класса имеют общим нечто существенное, сделайте его базовым классом. Почти все классы в вашей программе будут иметь нечто общее; заведите (почти) универсальный базовый класс, и разработайте его наиболее тщательно.
Когда вы определяете класс, который не реализует некоторый математический объект, вроде матрицы или комплексного числа, или тип низкого уровня, вроде связанного списка, то:
Не используйте глобальные данные.
Не используйте глобальные функции (не члены).
Не используйте открытые данные-члены.
Не используйте друзей, кроме как чтобы избежать 1, 2 или 3 пунктов
Не обращайтесь к данным-членам или другим объектам непосредственно.
Не помещайте в класс "поле типа"; используйте виртуальные функции.
Не используйте inline-функции, кроме как средство существенной оптимизации.
8 8 8
| |