Содержание
- 2. ПЕРЕГРУЗКА ФУНКЦИЙ Задача: Реализовать набор функций, реализующих один и тот же алгоритм для различных типов данных.
- 3. ПЕРЕГРУЗКА ФУНКЦИЙ int Square(int arg) {return arg*arg;} double Square(double arg) {return arg*arg;} char *Square(const char *arg,
- 4. ПЕРЕГРУЗКА ФУНКЦИЙ При вызове перегруженной функции компилятор определяет, какую именно функцию требуется вызвать, по типу фактических
- 5. ПЕРЕГРУЗКА ФУНКЦИЙ // наибольшее из двух целых: int max(int. int); // подстрока наибольшей длины: char* max(char*.
- 6. ПЕРЕГРУЗКА ФУНКЦИЙ Если точного соответствия не найдено, выполняются продвижения порядковых типов в соответствии с общими правилами
- 7. ПЕРЕГРУЗКА ФУНКЦИЙ Неоднозначность может появиться при: 1. Преобразовании типа; 2. Использовании параметров-ссылок; 3. Использовании аргументов по
- 8. ПЕРЕГРУЗКА ФУНКЦИЙ Правила описания перегруженных функций: Функции не могут быть перегружены, если описание их параметров отличается
- 9. ПЕРЕГРУЗКА ФУНКЦИЙ Перегруженные функции должны находиться в одной области видимости, иначе произойдет сокрытие аналогично одинаковым именам
- 10. ПЕРЕГРУЗКА ФУНКЦИЙ Декорирование имен – формирование уникального внутреннего имени функции. void Func(void); // @Func$qv void Func(int);
- 11. ШАБЛОНЫ ФУНКЦИЙ Многие алгоритмы не зависят от типов данных, с которыми они работают (классический пример —
- 12. ШАБЛОНЫ ФУНКЦИЙ Компилятор автоматически генерирует правильный код, соответствующий переданному типу. Таким образом, создается функция, которая автоматически
- 13. ШАБЛОНЫ ФУНКЦИЙ Первый же вызов функции, который использует конкретный тип данных, приводит к созданию компилятором кода
- 14. ШАБЛОНЫ ФУНКЦИЙ // шаблон функции определения минимума template T min( T a, T b ) {
- 15. ШАБЛОНЫ ФУНКЦИЙ int i[5] = { 5, 4, 3, 2, 1 }; sort ( i, 5
- 16. ШАБЛОНЫ ФУНКЦИЙ template char* read() { char *Buffer = new char[ BufferSize ]; /* считывание данных
- 17. ШАБЛОНЫ ФУНКЦИЙ // выведение значений параметров int i[5] = { 5, 4, 3, 2, 1 };
- 18. ФУНКЦИЯ MAIN Функция, которой передается управление после запуска программы, должна иметь имя main. Она может возвращать
- 19. ФУНКЦИЯ MAIN // вариант 1, без параметров: int main() { /* ... */} // вариант 2,
- 20. ФУНКЦИЯ MAIN Имена параметров в программе могут быть любыми, но принято использовать argc и argv. argc
- 21. ФУНКЦИЯ MAIN Каждый элемент массива содержит указатель на отдельный параметр командной строки, хранящийся в виде С-строки,
- 22. ФУНКЦИЯ MAIN #include int main(int argc, char* argv[]) { for (int i = 0: i }
- 23. АНАЛИЗ АРИФМЕТИЧЕСКИХ ВЫРАЖЕНИЙ float number() { int res = 0; for (;;) { char c =
- 24. АНАЛИЗ АРИФМЕТИЧЕСКИХ ВЫРАЖЕНИЙ float skobki() //обработка чисел и скобок { char c = cin.get(); if (c
- 25. АНАЛИЗ АРИФМЕТИЧЕСКИХ ВЫРАЖЕНИЙ float factor() //умножение и деление { float x = skobki(); for (;;) {
- 26. АНАЛИЗ АРИФМЕТИЧЕСКИХ ВЫРАЖЕНИЙ float expr() //сложение и вычитание { float x = factor(); for (;;) {
- 27. АНАЛИЗ АРИФМЕТИЧЕСКИХ ВЫРАЖЕНИЙ Простейший вызов: int main() { cout
- 28. ЗАДАЧИ 1. Реализовать простейший калькулятор на основе рассмотренного кода. Добавить в процесс разбора проверку на ввод
- 30. Скачать презентацию