C++.Бархатный путь




Совместно используемые функции - часть 6


По крайней мере, в Borland C++ 4.5, аналогичная инициализация параметров-указателей на функции адресами совместно используемых функций недопустима. Можно предположить, что на этом этапе у транслятора нет ещё полной и достоверной информации обо всех совместно используемых функциях программы.

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

void MonitorF(int,int,int*,float,char*(*)(int,int,int*,float)=MyFF1); /* Транслятор утверждает, что имя этих функций двусмысленно в контексте инициализации. */ MonitorF(9,9,pIval,9.9); /* Использование значения параметра по умолчанию также невозможно. */ void MonitorF(int,int,int*,float,char*(*)(int,int,int*,float)); MonitorF(11,11,pIval,11.11,MyFF1); /* При явном указании имени функции в операторе вызова транслятор однозначно идентифицирует функцию. */




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