
- •Структуры
- •Массив структур
- •Указатели на структуру
- •Битовые поля
- •Объединения
- •Перечисления
- •Переименование типов
- •Открытие файла
- •Функции работы с файлами
- •Форматный ввод/вывод
- •Ввод/вывод строк. Функции позиционирования
- •Чтение из двоичного файла и запись в него
- •Свойства ООП
- •1.1 Свойства ООП
- •Понятие класса в С++
- •1.2 Понятие класса С++
- •Создание класса
- •1.3 Создание класса
- •Члены класса
- •1.4 Члены класса
- •Инкапсуляция
- •1.5. Инкапсуляция
- •1.6 Функции-члены класса
- •Реализация понятия «дата» при помощи структуры
- •1.7 Реализация понятия «дата» при помощи структуры
- •Реализация понятия «дата» при помощи класса
- •1.8 Реализация понятия «дата» при помощи класса
- •Определение и вызов функций–членов класса
- •Выводы. Примеры
- •1.9 Выводы
- •1.10 Пример создания класса
- •Конструкторы
- •2.1 Конструкторы
- •2.2 Пример класса без конструктора
- •2.3 Пример класса с конструктором
- •2.4. Конструктор с параметрами по умолчанию
- •2.5. Деструкторы
- •2.6. Пример класса с конструктором и деструктором
- •2.7. Подставляемые или inline функции.
- •2.8. Подставляемые функции-члены.
- •2.9. Указатель this
- •2.10. Использование указателя this
- •Дружественные функции
- •3.1 Дружественные функции
- •3.2 Пример дружественной функции
- •3.3 Дружественные классы
- •3.4. Уточнение имени элемента.
- •3.5. Определение переменных непосредственно перед использованием
- •3.6. Статические элементы класса.
- •2.7. Пример
- •Перегруженные функции
- •4. Перегрузка функций и операций
- •4.1 Полиморфизм
- •4.2 Перегруженные функции
- •4.3 Перегрузка конструктора
- •4.4 Выбор экземпляра функции
- •4.5 Перегрузка стандартных операций
- •4.6 Перегрузка операций сложения и присваивания
- •4.7 Перегрузка операций ++ и --
- •4.8 Дружественные функции-операции
- •4.9 Перегрузка операции индексации []
- •4.10 Аргументы по умолчанию
- •5. Работа с объектами
- •5.1 Ссылки в С++
- •5.2 Передача объектов, как аргументов функции
- •5.3 Массивы объектов
- •5.4 Указатель на объект
- •5.5 Динамическое выделение памяти. Операторы new, delete.
- •5.6 Локальные классы
- •5.7 Вложенные классы
- •5.8 Имена заголовочных файлов в С++
- •5.9 Строковые переменные в С++.
- •6. Наследование
- •6.1 Понятие наследования
- •6.2 Базовые и производные классы
- •6.3 Одиночное и множественное наследование
- •6.4 Управление доступом производных классов
- •6.5 Пример
- •6.6 Конструкторы с параметрами при наследовании
- •6.7 Конструкторы при множественном наследовании
- •7. Виртуальные функции. абстрактные классы
- •7.1 Указатели на производные типы
- •7.2 Виртуальные функции
- •7.3 Пример
- •7.4 Чистые виртуальные функции и абстрактные типы
- •7.5 Виртуальные базовые классы
- •7.6 Шаблоны
- •7.7 Шаблоны функций
- •7.8 Пример
- •7.9 Использование шаблонов с двумя типами параметров
- •7.10 Шаблоны классов
1.6 Функции-члены класса
Функция, объявленная в классе, называется функцией-членом класса. Её вызов имеет соответствующий синтаксис.
Описание функции-члена класса относиться к области действия класса. Это означает, что функция-член класса может непосредственно использовать имена членов своего класса.
class Cl_X |
// Объявление класса Cl_Х |
{ private:
int n;
public:
void f();
};
void CL_X::f() // Определение функции f из класса Cl_Х
{ n++; }
Cl_X a, b; |
// Объявление переменных класса Cl_Х |
a.f(); // Вызов функции f применяется к переменной а.
// Таким образом, изменяется член n объекта a. Объект b остаётся без изменений.
Реализация понятия «дата» при помощи структуры
1.7 Реализация понятия «дата» при помощи структуры
Рассмотрим реализацию понятия “дата” с использованием структуры. struct date
{
int day, month, year; };
struct date today;
void set (date *, int, int, int); void next (date *);
void print (date *);
Оператор struct date today; отвечает за создание объекта типа struct date. Перечисленные функции не связаны с объектом. Эту связь можно установить, описав функции, как члены структуры.
struct date
{
int day, month, year;
void set (int, int, int);
void next (void);
void print (void);
};
Функции, объявленные внутри структуры, называются функции–члены и могут вызываться только для работы с определёнными переменными с использованием синтаксиса для доступа к элементам структуры.
struct date today;
struct date my birthday;
my birthday. set (10, 2, 1989);
today. set (16, 2, 2007);
today. next ();
today. day =5; обращение объекта todayк элементу day.
Поскольку разные структуры могут иметь функции–члены с одинаковыми именами, при определении функции–члена необходимо указывать имя структуры.
void date:: print (void)
{
cout<<day<<month<<year;
}
определение функции.
date:: – принадлежность функции print к структуре date.
В функции–члене имена элементов структуры могут указываться без явной ссылки на объект. В этом случае, имя относится к элементу того объекта, для которого функция была вызвана.
today. print();– вызов функции.