Мегаобучалка Главная | О нас | Обратная связь


Перегрузка функций и указатель на функцию.



2020-02-04 195 Обсуждений (0)
Перегрузка функций и указатель на функцию. 0.00 из 5.00 0 оценок




 

«Перегрузка» функции – это объявление функции с тем же именем несколько раз. Таким образом, в некоторой области видимости имя «перегруженной» функции объявляется несколько раз. Чтобы компилятор мог отличать «перегруженные» функции между собой, эти функции должны отличаться списком входных параметров.

В общем случае, объявление перегруженной функции в некоторой области видимости выглядит следующим образом:

return_type1 FunName(parameters_list_1)

{

// ...

}

return_type2 FunName(parameters_list_2)

{

// ...

}

return_typeN FunName(parameters_list_N)

{

// ...

}

где

· FunName – имя перегруженной функции;

· parameters_list1, parameters_list2, …, parameters_listN – списки параметров «перегруженной» функции с именем FunName;

· return_type1, return_type2, …, return_typeN – типы параметров, которые возвращаются «перегруженной» функцией FunName. Компилятор различает «перегруженные» функции только по списку полученных параметров а не по возвращаемомоу значению.

 

 

Программирование с использованием рекурсии. Понятие рекурсии.

 

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

Если функция (метод) вызывает сам себя, то такой вызов называется рекурсивным вызовом функции. При каждом рекурсивном вызове запоминаются предыдущие значения внутренних локальных переменных и полученных параметров функции. Чтобы следующий шаг рекурсивного вызова отличался от предыдущего, значение как-минимум одного из параметров функции должно быть изменено. Остановка процесса рекурсивных вызовов функции происходит, когда изменяемый параметр достиг некоторого конечного значения, например, обработан последний элемент в массиве.

 

 

Программирование с использованием файлов. Организация работы с файлами.

 

Различают два вида файлов: текстовые и двоичные (бинарные).

Текстовые файлы хранят информацию в виде последовательности символов. В текстовом режиме каждый разделительный символ строки автоматически преобразуется в пару (возврат каретки – переход на новую строку).

Бинарные (или двоичные) файлы предназначены для хранения только числовых значений данных. Структура такого файла определяется программно.

Функции для работы с файлами размещены в библиотеках stdio.lib

(#include <stdio.h>) и io.lib (#include <io.h>). Каждый файл должен быть связан с указателем, который имеет тип FILE и используется во всех операциях с файлами.

Формат объявления указателя на файл следующий:

FILE *указатель на файл;

Макрос NULL определяет пустой указатель.

Макрос EOF, часто определяемый как –1, является значением, возвращаемым тогда, когда функция ввода пытается выполнить чтение после конца файла.

Макрос FOPEN_MAX определяет целое значение, равное максимальному числу одновременно открытых файлов.

 

Функции для работы с файлами.

Перед началом работы с файлом его необходимо открыть функцией

FILE *fopen (const char *имя _ файла,

const char * режим_открытия );

которая связывает файл с потоком и возвращает указатель на открытый файл. Имя_файла и режим_открытия – указатели на строки символов, содержащие соответственно путь к файлу, его имя и режим открытия файла. Допустимые

режимы:

r − открытие текстового файла для чтения; w − cоздание текстового файла для записи;

a добавление информации в конец текстового файла.

При работе с текстовыми файлами к символу, указывающему режим открытия, добавляется символ «t» (по умолчанию), а при работе с бинарными – «b». Если необходимо читать и записывать в файл, то добавляется символ «+». При возникновении ошибки во время открытия файла функция fopen возвращает значение NULL.

После завершения работы с файлом его необходимо закрыть функцией int fclose (FILE *указатель_на _файл);

которая закрывает поток, открытый с помощью вызова fopen (), и записывает в файл данные, оставшиеся в дисковом буфере. Результатом работы функции

Функция

int fcloseall (void);

закрывает все открытые файлы и возвращает количество закрытых файлов или EOF, если возникает ошибка.

Функция

int putc (int символ, FILE * указатель_на _файл);

записывает один символ в текущую позицию указанного открытого файла.

Функция

int getc (FILE * указатель_на _файл);

читает один символ из текущей позиции указанного открытого файла. Функция

int feof (FILE * указатель_на _файл);

возвращает отличное от нуля значение (true), если конец файла не достигнут, и ноль (false), если достигнут конец файла.

Функция

int *fscanf (FILE * указатель_на _файл,

const char * управляющая_строка );

читает форматированные данные из файла. Строка форматирования строится аналогично функции fprintf.

Функция

void rewind (FILE * указатель_на _файл);

устанавливает указатель текущей позиции выделенного файла в начало файла.

Функция

int ferror (FILE * указатель_на _файл);

определяет, произошла ли ошибка во время работы с файлом.

 

 



2020-02-04 195 Обсуждений (0)
Перегрузка функций и указатель на функцию. 0.00 из 5.00 0 оценок









Обсуждение в статье: Перегрузка функций и указатель на функцию.

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (195)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)