С++ для начинающих




Проверка типов формальных параметров - часть 2


Пропуск аргумента при вызове или передача аргумента неуказанного типа часто служили источником ошибок в языке С. Теперь такие погрешности обнаруживаются на этапе компиляции.

Упражнение 7.1

Какие из следующих прототипов функций содержат ошибки? Объясните.

(a) set( int *, int );

(b) void func();

(c) string error( int );

(d) arr[10] sum( int *, int );

Упражнение 7.2

Напишите прототипы для следующих функций:

Функция с именем compare, имеющая два параметра типа ссылки на класс matrix и возвращающая значение типа bool.

Функция с именем extract без параметров, возвращающая контейнер set для хранения значений типа int. (Контейнерный тип set описывался в разделе 6.13.)

Упражнение 7.3

Имеются объявления функций:

double calc( double );

int count( const string &, char );

void sum( vector<int> &, int );

vector<int> vec( 10 );

Какие из следующих вызовов содержат ошибки и почему?

(a) calc( 23.4, 55.1 );

(b) count( "abcda", 'a' );

(c) sum( vec, 43.8 );

(d) calc( 66 );




Содержание  Назад  Вперед