logo
Харви Дейтел, Пол Дейтел Как программировать на С++ / 02-Deitel-Стр-115-214

214 Глава 3

// Функции, не требующие аргументов #include <iostream.h>

void fl(); void f2(void);

main() {

fl () ; f2 () ;

return 0;

void fl () {

cout « "Функция fl не требует аргументов" « endl; }

void f2 (void) {

cout « "Функция f2 также не требует аргументов" « endl;

Функция fl не требует аргументов Функция f2 также не требует аргументов

Рис. 3.18. Два способа объявления и использования функций, не требующих аргументов

Замечание по мобильности 3.3

Роль пустого списка параметров функции в С++ существенно отличается от С. В С это означает, что все проверки аргументов отсутствуют (т.е. вызов функции может передать любой аргумент, который требуется). А в С++ пустой список означает отсутствие аргументов. Таким образом, программа на С, использующая эту особен­ность, может сообщить о синтаксической ошибке при компиляции в С++.

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

Типичная ошибка программирования 3.21

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