252 _____________________________Часть II. Программирование на C++

и COBOL, является то, что синтаксис C++ чувствителен к регистру символов. Поэтому три оператора

void Foo ();

void FOO() ;

void foo() ;

объявляют три различные функции. Для неаккуратных программистов это может стать солидным препятствием.

Выработайте для себя стандарт именования функций. Если вы будете его последовательно придерживаться, то чувствительность C++ к регистру не доставит вам никаких неудобств. В данной книге используется соглашение, в соответствии с которым первые буквы всех слов, составляющих имя функции, пишутся с большой буквы. То есть имя функции из одного слова будет выглядеть так:

int Size();

«

А функция с именем '

size_t SizeOfO;

(буквы S и О — заглавные) — это совсем не то же, что операция sizeof. Кроме того, в книге не используются нестандартные аббревиатуры в именах функций. Имена, начинающиеся с заглавных букв, легче читать, а отсутствие нестандартных сокращений не заставляет ломать голову над назначением функции (помните DayOfweek — день недели? А ведь бывают программы, в которых можно встретить обозначения типа dyofwk или как-нибудь еще похуже).

Ваша последовательность окупится сторицей. Необязательно следовать тем соглашениям, что используются в этой книге, разработайте свои собственные и придерживайтесь их в своем коллективе. Альтернативы, к предложенным выше подходам, можно найти в главе 5 "Соглашения об именах и комментариях".

Типы аргументов

До сих пор речь шла о типах возвращаемых значений и именах функций. Теперь, до того как мы углубимся в общие аспекты объявлений функций, необходимо поговорить о типах аргументов. В этом разделе мы разберемся, что можно делать с аргументами функций. Далее мы познакомимся со спецификаторами функций и рассмотрим несколько примеров.

К аргументам функций применимы все те же правила, о которых говорилось в разделе, посвященном возвращаемым типам. Синтаксическая разница между типами возвращаемых значений и типами аргументов состоит в