русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Указатель на динамически созданный объект.


Дата добавления: 2014-04-05; просмотров: 717; Нарушение авторских прав


 


Ключевое слово const.

void func (const int *pn); // позволяет объявлять функции с ключевым словом const

Такое объявление параметра обеспечивает неизменяемость объекта, на который указывает pn, то есть это позволяет компилятору блокировать нежелательные побочные эффекты вызова функции.

void func1 (const char *pc)
{
//*pc=’A’;
}


Замечание:

При объявлении константных параметров ключевое слово const должно фигурировать как в объявлении функции, так и в ее определении;

Нет необходимости объявлять с идентефикатором const параметры, которые представляют значение объекта, так как функция получает только копии исходных переменных.

void func( const int n);

“Перегрузка” имён функции.

Перегрузка – одна из особенностей C++, которая позволяет использовать одно и то же имя для разных функций.

Этот механизм возможен ввиду того, что функции с одним и тем же именем, но с разным количеством и разными типами параметров компилятор декорирует по-разному.

 

Ограничение в использовании перегрузки:

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

Не могут перегружаться функции, имеющие неявно совпадающие типы аргументов.

int MaxInt(int x; int y)
{
return (x>y);
}
double MaxDouble (double x, double y)
{
return (x>y);
}


//примеры без перегрузки

main()
{
int i=MaxInt (12,8);
double d= MaxDouble(1.1;2.2);
}


C перегрузкой:

main()
{
int i=Max(12,8);
double d= Max(1.1, 2.2);
double dd=Max(1.1, 2); //ERROR!!
}
void f(int x, int y=5);


Возможный конфликт при использовании параметров по умолчанию.

void f(int x, int y = 0);

void f (int);

int main () {

f (2, 5) ; // ошибка

f (5); // ошибка, компилятор не знает, какую функцию вызывать.



}

Рекурсивные функции.

Вызывают сами себя.

Происходит выполнение одного и того же кода с разными наборами данных.

Каждое выполнение тела функции имеет свою область стека для параметров и локальных переменных.

Достоинства:

Ø компактность.

Недостатки:

Ø большие затраты времени на вызов функции;

Ø большие затраты памяти (стека) для организации каждого вложенного цикла.

Специфика рекурсивных функций:

Программист должен обеспечивать выход из рекурсии;



<== предыдущая лекция | следующая лекция ==>
Для рекурсивных функций. | по мере возможности следует избегать использования с рекурсивной функцией локальных переменных.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.027 сек.