Додаток C Стиль програмування

Кожен програміст, будь то чоловік або жінка, має індивідуальні міркування з приводу того, що називають хорошим стилем програмування Зазвичай ці ідеї почерпнуті з безлічі джерел, включаючи книги, журнальні статті та інші мови

Я витратив досить багато часу на розробку стилю програмування, використовуваного в цій книзі Моя основна мета полягає в тому, щоб зробити код більш легким для розуміння Для цього потрібно зберегти окремі класи відносно простими і в той же час зробити інтерфейси класів несуперечливими і зрозумілими (вам необовязково знати, що знаходиться усередині класу, щоб бути в змозі використати його) Для простоти я теж не активував ряд можливостей C + +

Ефективність вторинний параметр Хоча я впевнений, що мій програмний код досить ефективний, я уникав деяких складних підходів, які могли б зробити його ще більш ефективним Гнучкість також вторинна Цей код досить легко використовувати в багатьох випадках, однак я опустив ряд деталей (таких як конструктори перетворення і Віртуальне функції-члени), які могли зробити його ще більш гнучким

Далі представлений список деяких використовуваних мною угод у слу-

чайному порядку:

 ‰ Â Ñ Â Â Ð ¸ Ð ½ Ñ, ÐμÐ ½ Ñ Ð ¸ Ð ² Ð ½ Ð ¾   Р¿Ñ € Ð ¸ Ð ² Ð »ÐμÐ º Ð ° ÑŽÂ Â Ñ Ð ¿ÐμÑ † Ð ¸ Ñ Ð ¸ Ð º Ð ° Ñ, Ð ¾ Ñ € Ñ <  Р¾ Ð ± Ð »Ð ° Ñ Ñ, Ð ¸   Р² Ð ¸ Ð'Ð ¸ Ð ¼ Ð ¾ Ñ Ñ, Ð ¸   (Ñ, Ð ° Ð º Ð ¸ Ðμ  Рº Ð ° Ð º public, protected Ð ¸ л Ð ¸ private) Ð ² Ð ¾ Ð ¿ Ñ ​​€ ÐμÐ'ÐμÐ »ÐμÐ ½ Ð ¸ Ñ Ñ ... Ð º л Ð ° Ñ Ñ Ð ¾ Ð ². Ð'Ð ° Ð ¼ Ð ½ Ðμ Ð ½ уР¶ Ð ½ Ð ¾ Ð'Ð ¾ Ð »Ð ³ Ð ¾ Ð º Ð ¾ Ð ¿Ð ° Ñ, ÑŒÑ Ñ Ð ² Ð º Ð ¾ Ð'Ðμ, Ñ ‡ Ñ, Ð ¾ Ð ± Ñ <Ð ¾ Ð ¿Ñ € ÐμÐ'Ðμл Ð ¸ Ñ, ÑŒ Ð ¾ Ð ± Ð »Ð ° Ñ Ñ, ÑŒ Ð ² Ð ¸ Ð'Ð ¸ Ð ¼ Ð ¾ Ñ Ñ, Ð ¸ елемента;

 ‰ Â Ñ Â ÑƒÐ ¿Ñ € Ð ¾ Ñ Ñ, Ð ¸ Ð »Â Ð ¾ Ð ± Ñ € Ð ° Ð ± Ð ¾ Ñ, Ð º у  Р¾ ÑÐ ¸ Ð ± Ð ¾ Ð º  МР½ Ð ¾ Ð ³ Ð ¸ Ðμ  Р¸ Ð ·  Р½ Ð ¸ Ñ ..  Р¾ Ð ± Ñ € Ð ° Ð ± Ð ° Ñ, Ñ <Ð ² Ð ° ÑŽÑ, Ñ Ñ Â Ñ ‡ ÐμÑ € ÐμÐ ·  Р² Ñ <Ð ² Ð ¾ Ð '

простого повідомлення в cerr і виклик функції exit Хоча це робить код менш стійким, зате значно його спрощує Якщо ви хочете використовувати мій код в комерційному продукті, вам, ймовірно, доведеться доопрацювати даний аспект

 ‰ Â Ñ Ð ½ Ðμ Ð ¿Ñ € Ð ¸ Ð ¼ ÐμÐ ½ Ñ ÑŽ Ð ¼ Ð ½ Ð ¾ Ð ¶ ÐμÑ Ñ, Ð ² ÐμÐ ½ Ð ½ Ð ¾ Ðμ Ð ½ Ð ° Ñ Ð »ÐμÐÐ ¾ Ð ² Ð ° Ð ½ Ð ¸ Ðμ

 ‰ Â Ñ Ð ½ Ðμ Ð ¿Ñ € Ð ¸ Ð ² Ð »ÐμÐ º Ð ° ÑŽ Ð ³ л Ð ¾ Ð ± Ð ° Ð »ÑŒÐ ½ Ñ <Ðμ Ð ¿ÐμÑ € ÐμÐ ¼ ÐμÐ ½ Ð ½ Ñ <Ðμ;

 ‰ Â Â Ñ Â Ð ¸ Ñ Ð ¿Ð ¾ Ð »ÑŒÐ · ую  Ñ, Ð ° Ð ¼,  Р³ ÐÐμ  Р² Ð ¾ Ð · Ð ¼ Ð ¾ Ð ¶ Ð ½ Ð ¾, Â Ñ Ñ, Ð ° Ñ, Ð ¸ Ñ ‡ ÐμÑ Ð º Ð ¸ Ðμ  (Ñ Ð ¿ÐμÑ † Ð ¸ Ñ Ð ¸ Ð º Ð ° Ñ, Ð ¾ Ñ €  static),  л Ð ¾ –

Кальне для файлу функції та змінні Це іноді дозволяє мені со-

що зберігаються деталі реалізації поза заголовних файлів

 ‰  Р¼ Ð ½ Ð ¾ Ð ³ Ð ¾ Ñ Ð »Ð ¾ Ð ² Ð ½ Ñ <Ðμ   Р¸ Ð'ÐμÐ ½ Ñ, Ð ¸ Ñ" Ð ¸ Ð º Ð ° Ñ, Ð ¾ Ñ € Ñ <   Р· Ð ° Ð ¿Ð ¸ Ñ Ñ <Ð ² Ð ° ÑŽÑ, Ñ Ñ ​​Â Â Â Ñ Â Â Â Ð ¿Ñ € Ð ¾ Ð ¿Ð ¸ Ñ Ð ½ Ñ <Ð ¼ Ð ¸    Р± уРº Ð ² Ð ° Ð ¼ Ð ¸

на початку слів Наприклад, ClassName або variableName

 ‰  Р¸ Ð ¼ ÐμÐ ½ Ð ° Ð º Ð »Ð ° Ñ Ñ Ð ¾ Ð ² Ð ¸ Ñ ÑƒÐ ½ Ð º Ñ † Ð ¸ Ð ¹ Ð ½ Ð ° Ñ ‡ Ð ¸ Ð ½ Ð ° ÑŽÑ, Ñ Ñ Ñ Ð ¿Ñ € Ð ¾ Ð ¿Ð ¸ Ñ Ð ½ Ñ <Ñ ... Ð ± уРº Ð ²;

 ‰   Р¸ Ð ¼ ÐμÐ ½ Ð °  Р¿ÐμÑ € ÐμÐ ¼ ÐμÐ ½ Ð ½ Ñ <Ñ ...  Р² Ñ ÐμÐ ³ Ð'Ð °  Р½ Ð ° Ñ ‡ Ð ¸ Ð ½ Ð ° ÑŽÑ, Ñ Ñ Â Ñ Ð ¾ Â Ñ Ñ, Ñ € Ð ¾ Ñ ‡ Ð ½ Ð ¾ Ð ¹  Р± уРº Ð ² Ñ <.  Р~ Ð ¼ ÐμÐ ½ Ð °  Р¿ÐμÑ € ÐμÐ ¼ ÐμÐ ½ -

вих-членів з символу підкреслення (Це дозволяє розрізняти локаль-

ві змінні функцій і змінні-члени)

 ‰   Р² Ñ Ðμ Ð ¿ÐμÑ € ÐμÐ ¼ ÐμÐ ½ Ð ½ Ñ <Ðμ-Ñ ‡ Ð »ÐμÐ ½ Ñ <Ð ¾ Ð ± ÑŠÑ Ð ² л Ñ ÑŽÑ, Ñ Ñ Ñ Ð ¾ Ñ Ð ¿ÐμÑ † Ð ¸ Ñ "Ð ¸ Ð º Ð ° Ñ, Ð ¾ Ñ € Ð ¾ Ð ¼ private;

 ‰  Ñ, Ð ¾ Ð »ÑŒÐ º Ð ¾ Ð ¿Ñ € Ð ¾ Ñ Ñ, ÐμÐ ¹ ÑÐ ¸ Ðμ Ð ¼ ÐμÑ, Ð ¾ ÐÑ <Ð ¾ Ð ¿Ñ € ÐμÐ'Ðμл Ñ ÑŽÑ, Ñ Ñ Ð ² Ð · Ð ° Ð ³ Ð ¾ Ð »Ð ¾ Ð ² Ð ¾ Ñ ‡ Ð ½ Ñ <Ñ ... Ñ ​​"Ð ° Ð ¹ л Ð ° Ñ ...;

 ‰ Â Ñ Â Â Ð ¸ Ð ½ Ñ, ÐμÐ ½ Ñ Ð ¸ Ð ² Ð ½ Ð ¾   Р¸ Ñ Ð ¿Ð ¾ Ð »ÑŒÐ · ую  Р½ Ð ¾ Ð ² ую  Р· Ð ° Ð ¿Ð ¸ Ñ ÑŒÂ Â Ðл Ñ Â Â Ð ¿Ñ € Ð ¸ Ð ² ÐμÐÐμÐ ½ Ð ¸ Ñ Â Â Ñ, Ð ¸ Ð ¿Ð ¾ Ð ²   ÐÐ ¼ ÐμÑ Ñ, Ð ¾

(Double) i застосовується static_cast iTeм нe мeнee лyчшe нe брати в розрахунок динамічне приведення (dynamic_cast), так як не всі компілятори підтримують його

 ‰ Â Ñ ‡ Ñ, Ð ¾ Ð ± Ñ < Рº Ð ¾ Ð ' Р± Ñ <Ð »Â Ð'Ð ¾ Ñ Ñ, Ð ° Ñ, Ð ¾ Ñ ‡ Ð ½ Ð ¾  Р¿Ñ € Ð ¾ Ñ Ñ, Ñ <Ð ¼, Â Ñ Â Ð ¸ Ð · Ð ± ÐμÐ ³ Ð ° Ð »Â Ð ¿Ñ € Ð ¸ Ð ² л ÐμÑ ‡ ÐμÐ ½ Ð ¸ Ñ Â ÑÐ ° Ð ± Ð »Ð ¾ Ð ½ Ð ¾ Ð ²,  Р² л Ð ¾ -

дені типів, великих ієрархій успадкування, просторів імен, статічес-

ких класових методів і змінних і багатьох інших можливостей C + +

 ‰ Â Â Ñ Â Ð ¸ Ñ Ð ¿Ð ¾ Ð »ÑŒÐ · ую  Р½ Ð ¾ Ð ² Ñ <Ð ¹  Ñ, Ð ¸ Ð ¿Â Ð'Ð ° Ð ½ Ð ½ Ñ <Ñ ...  bool,  Р¿Ð ¾ Ñ Ð ² Ð ¸ Ð ² ÑÐ ¸ Ð ¹ Ñ Ñ Â Ð ²  C + +, Â Ñ ... Ð ¾ Ñ, Ñ Â ÐμÑ Ñ, ÑŒ  Рº Ð ¾ Ð ¼ Ð ¿Ð ¸ -

лятори, які не підтримують його Враховую тільки основні можли-

ності, щоб ви могли запустити код, додавши наступні рядки:

type int bool

#define true (1)

#define false (0)

Джерело: Кінтцель Т Керівництво програміста по роботі зі звуком = A Programmers Guide to Sound: Пер з англ М: ДМК Пресс, 2000 432 с, іл (Серія «Для програмістів»)

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*