- •1)Указатели.
- •3) Инициализация указателей
- •4) Понятие класса. Описание класса (Паскаль). Поля и методы. Пример
- •5) Операции с указателями
- •7) Массивы. Описание одномерных и многомерных массивов, инициализация.
- •8) Описание объектов (экземпляров класса) Способы обращения к полям объекта. (Паскаль).
- •9) Ввод и вывод массивов, два способа: с выбором элемента по индексу и с выбором элемента по указателю.
- •11) Типы данных, определяемые пользователем: перечисления.
- •12) Константный указатель на вызвавший метод объект (self ) (Паскаль).
- •13) Типы данных, определяемые пользователем: структуры.
- •15)Типы данных, определяемые пользователем: объединения.
- •16) Конструктор и деструктор, их свойства (Паскаль).
- •17) Функции. Объявление и определение, заголовочные файлы в с и предописания (forward) в Паскале.
- •19) . Способы обмена данными: с помощью глобальных переменных.
- •21) Способы обмена данными: Возвращаемое значение.
- •23) Способы обмена данными: Параметры функции.
- •24) Виртуальные методы и абстрактные классы.
- •25) Передача параметров по значению и по адресу.
- •30) Delphi nenado
- •31) Перегрузка функций.
- •40) Код проекта. Nenado
30) Delphi nenado
31) Перегрузка функций.
При определении функций в своих программах вы должны указать тип возвращаемого функцией значения, а также количество параметров и тип каждого из них. В прошлом (если вы программировали на языке С), когда у вас была функция с именем add_values, которая работала с двумя целыми значениями, а вы хотели бы использовать подобную функцию для сложения трех целых значений, вам следовало создать функцию с другим именем. Например, вы могли бы использовать add_two_values и add_three_values. Аналогично если вы хотели использовать подобную функцию для сложения значений типа float, то вам была бы необходима еще одна функция с еще одним именем. Чтобы избежать дублирования функции, C++ позволяет вам определять несколько функций с одним и тем же именем. В процессе компиляции C++ принимает во внимание количество аргументов, используемых каждой функцией, и затем вызывает именно требуемую функцию. Предоставление компилятору выбора среди нескольких функций называется перегрузкой
Перегрузка функций позволяет вам использовать одно и то же имя для нескольких функций с разными типами параметров. Для перегрузки функций просто определите две функции с одним и тем же именем и типом возвращаемого значения, которые отличаются количеством параметров или их типом. Перегрузка функций является особенностью языка C++, которой нет в языке С. Как вы увидите, перегрузка функций достаточно удобна и может улучшить удобочитаемость ваших программ.
ПЕРВОЕ ЗНАКОМСТВО С ПЕРЕГРУЗКОЙ ФУНКЦИЙ
Перегрузка функций позволяет вашим программам определять несколько функций с одним и тем же именем и типом возвращаемого значения. Например, следующая программа перегружает функцию с именем add_values. Первое определение функции складывает два значения типа int. Второе определение функции складывает три значения. В процессе компиляции C++ корректно определяет функцию, которую необходимо использовать:
#include <iostream.h>
int add_values(int a,int b)
{
return(a + b);
)
int add_values (int a, int b, int c)
(
return(a + b + c);
)
void main(void)
{
cout << "200 + 801 = " << add_values(200, 801) << endl;
cout << "100 + 201 + 700 = " << add_values(100, 201, 700) << endl;
}
Как видите, программа определяет две функции с именами add_values Первая функция складывает два значения типа int, в то время как вторая складывает три значения. Вы не обязаны что-либо предпринимать специально для того, чтобы предупредить компилятор о перегрузке, просто используйте ее. Компилятор разгадает, какую функцию следует использовать, основываясь на предлагаемых программой параметрах.
!","Перегрузка - это круто!") ;
}
КОГДА НЕОБХОДИМА ПЕРЕГРУЗКА
Одним из наиболее общих случаев использования перегрузки является применение функции для получения определенного результата, исходя из различных параметров. Например, предположим, что в вашей программе есть функция с именем day_of_week, которая возвращает текущий день недели (0 для воскресенья, 1 для понедельника, ..., 6 для субботы). Ваша программа могла бы перегрузить эту функцию таким образом, чтобы она верно возвращала день недели, если ей передан юлианский день в качестве параметра, или если ей переданы день, месяц и год:
int day_of_week(int julian_day)
{
// Операторы
}
int day_of_week(int month, int day, int year)
{
// Операторы
}
Перегрузка функций улучшает удобочитаемость программ Перегрузка функций C++ позволяет вашим программам определять несколько функций с одним и тем же именем. Перегруженные функции должны возвращать значения одинакового типа*, но могут отличаться количеством и типом параметров. До появления перегрузки функций в C++ программисты языка С должны были создавать несколько функций с почти одинаковыми именами. К сожалению программисты, желающие использовать такие функции, должны были помнить, какая комбинация параметров соответствует какой функции. С другой стороны, перегрузка функций упрощает задачу программистов, требуя, чтобы они помнили только одно имя функции. * Перегруженные функции не обязаны возвращать значения одинакового типа по той причине, что компилятор однозначно идентифицирует функцию по ее имени и набору ее аргументов. Для компилятора функции с одинаковыми именами, но различными типами аргументов — разные функции, поэтому тип возвращаемого значения — прерогатива каждой функции. — Прим.перев.
ЧТО ВАМ НЕОБХОДИМО ЗНАТЬ
Перегрузка функций предоставляет несколько "взглядов" на одну и ту же функцию внутри вашей программы. Для перегрузки функций просто определите несколько функций с одним и тем же именем и типом возвращаемого значения, которые отличаются только количеством и типом параметров.
В процессе компиляции C++ определит, какую функцию следует вызвать, основываясь на количестве и типе передаваемых параметров. Перегрузка функций упрощает программирование, позволяя программистам работать только с одним именем функции
32) ????
33) Связные структуры данных: стек- описание и операции со стеком.
34) Основные общие свойства объектов управления.
Nenado
35) Связные структуры данных: очередь- описание и операции.
36) Основные элементы стандартной палитры компонентов .
nenado
37) Связные структуры данных: список- описание и операции.
38) Файловый состав проекта.
nenado
39) Понятие ООП Основные свойства ООП (инкапсуляция, наследование, полиморфизм). Объектно-ориентированное программирование или ООП (object-oriented programming) -- методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из который является реализацией определенного типа, использующая механизм пересылки сообщений и классы, организованные в иерархию наследования.
Центральный элемент ООП -- абстракция. Данные с помощью абстракции преобразуются в объекты, а последовательность обработки этих данных превращается в набор сообщений, передаваемых между этими объектами. Каждый из объектов имеет свое собственное уникальное поведение. С объектами можно обращаться как с конкретными сущностями, которые реагируют на сообщения, приказывающие им выполнить какие-то действия.
ООП характеризуется следующими принципами (по Алану Кею):
все является объектом; вычисления осуществляются путем взаимодействия (обмена данными) между объектами, при котором один объект требует, чтобы другой объект выполнил некоторое действие; объекты взаимодействуют, посылая и получая сообщения; сообщение -- это запрос на выполнение действия, дополненный набором аргументов, которые могут понадобиться при выполнении действия;
каждый объект имеет независимую память, которая состоит из других объектов;
каждый объект является представителем класса, который выражает общие свойства объектов данного типа; в классе задается функциональность (поведение объекта); тем самым все объекты, которые являются экземплярами одного класса, могут выполнять одни и те же действия;
классы организованы в единую древовидную структуру с общим корнем, называемую иерархией наследования; память и поведение, связанное с экземплярами определенного класса, автоматически доступны любому классу, расположенному ниже в иерархическом дереве.
Определение 1.1 Абстрагирование (abstraction) -- метод решения задачи, при котором объекты разного рода объединяются общим понятием (концепцией), а затем сгруппированные сущности рассматриваются как элементы единой категории.
Абстрагирование позволяет отделить логический смысл фрагмента программы от проблемы его реализации, разделив внешнее описание (интерфейс) объекта и его внутреннюю организацию (реализацию).
Определение 1.2 Инкапсуляция (encapsulation) -- техника, при которой несущественная с точки зрения интерфейса объекта информация прячется внутри него.
Определение 1.3 Наследование (inheritance) -- свойство объектов, посредством которого экземпляры класса получают доступ к данным и методам классов-предков без их повторного определения. Наследование позволяет различным типам данных совместно использовать один и тот же код, приводя к уменьшению его размера и повышению функциональности.
Определение 1.4 Полиморфизм (polymorphism) -- свойство, позволяющее использовать один и тот же интерфейс для различных действий; полиморфной переменной, например, может соответствовать несколько различных методов.