- •Структура платформы .NET
- •Схема выполнения программы в .NET
- •Схема работы компиляторов .NET
- •Достоинства языка С++
- •Структура программы
- •Модификаторы памяти
- •Пространство имен
- •Константы
- •Описание идентификаторов
- •Операции С++
- •Правила преобразования типов
- •Функции
- •ПЕРЕГРУЗКА ФУНКЦИЙ
- •Неоднозначность перегрузки
- •Шаблоны функций
- •Явная спецификация типов
- •Оперативная память
- •В адресном пространстве каждого процесса содержится:
- •Виртуальная память может находиться в трех состояниях
- •Средства защиты памяти
- •Страничное преобразование
- •ПРИМЕР РАБОТЫ С УКАЗАТЕЛЯМИ
- •Еще один пример с указателями
- •Утечки памяти
- •Процесс сборки мусора
- •Сборка мусора. Поколения объектов
- •Особенности ОС Windows
- •Процесс и поток
- •Очереди сообщений
- •Структура сообщения
- •Cпособы создания интерактивных Win приложений в VS C++
- •Функция WinMain
- •Создание окна
- •Функция окна
- •Цикл обработки сообщения
- •Определение запущенной копии приложения
- •Пример приложения
- •Команды передачи данных
- •Арифметические команды:
- •Каркас программы
- •Стековый фрейм
- •Парадигмы программирования
- •Элементы объектной модели
- •Преимущества объектной модели
- •Ограничения доступа
- •Спецификатор памяти static
- •Спецификатор const
- •Указатель this
- •Дружественные функции
- •Основные свойства и правила использования спецификатора friend:
- •Наследование
- •Основные правила использования базовых и производных классов:
- •Наследование атрибутов компонентов базового класса:
- •Множественное наследование
- •Использование виртуального класса
- •Полиморфизм
- •ПРОЦЕСС
- •Структура процесса
- •Поток (thread)
- •Создание и работа с потоками
- •Создание потока
- •Завершение потока
- •Совместимость потоков и стандартной библиотеки
- •Синхронизация потоков ПРИМЕР1
- •Как можно приостановить работу потока?
- •ПРИМЕР 2
- •Объекты синхронизации
- •Мьютекс. ПРИМЕР3
- •Критические секции ПРИМЕР4
- •События. ПРИМЕР5
- •Семафоры. ПРИМЕР6
- •Структура описания технологической операции
- •Типы программ
- •Жизненный цикл программного обеспечения
- •Структура процессов ЖЦПО
- •Стратегии конструирования ПО
- •Водопадная модель ЖЦПО
- •Макетирование
- •Спиральная модель БОЭМА
- •Инкрементальная модель
- •Модель быстрой разработки приложений (RAD)
- •Схема процесса XP.
- •Эксплуатационные требования к программным продуктам
Ограничения доступа
Private |
|
Public |
|
Protected |
|
|
|
|
|
||||
Член-данные и член- |
Член-данные и член- |
Член-данные и член- |
||||
функции |
доступны |
функции доступны |
функции |
доступны |
||
только через член- |
из любого |
места |
только через |
член- |
||
функции |
данного |
программы, |
где |
функции |
данного |
|
класса. |
|
имеется |
|
класса |
и |
его |
|
|
представитель |
|
потомков. |
|
|
|
|
класса. |
|
|
|
|
|
|
|
|
|
|
|
Пример использования класса
classdate |
data::set(intm, intd, inty) |
{private: |
{ month=m; |
int month, day, year; |
day=d; |
public: |
year=y; |
void set(int, int, int); |
} |
void out(); |
data::out() |
date(int, int, int); |
{cout << day << " " << month |
~date() |
<< " " << year; |
} today; |
} |
date::date(int m=0, intd=1, int |
y=1998) |
{month = m; |
|
day = d; |
|
year = y; |
today.set(4,4,2011); |
} |
today.out(); |
Основные свойства и правила использования конструкторов:
конструкторимеет то же имя, что и класс, в котором он объявляется;
конструкторне возвращаетзначения (дажетипаvoid);
конструкторне наследуется в производныхклассах.
конструктор может иметьпараметры, заданныепоумолчанию;
конструктор - этофункция, ноего нельзяобъявитьсключевым словомvirtиal;
невозможнополучить в программе адрес конструктора;
если конструкторнезадан в программе, тоон будетaвтоматически сгенерирован;
конструкторвызываетсяавтоматическитолькопри описании объекта;
объект, содержащий конструктор, нельзявключитьв виде компонентав объединение;
конструкторкласса Х не может иметь параметр типа Х, может иметь параметр ссылку на объект типаХ, в этомслучае он называется конструкторомдля копирования (соруconstrиctor)
класса Х.
Основные свойства и правила использования деструкторов:
деструктор имееттожесамое имя,чтои класс, в которомон объявляется, с префиксом ~ (тильдой);
деструкторневозвращаетзначения ;
деструкторне наследуется в производныхклассах;
производныйкласс можетвызватьдеструкторыдляего базовых классов;
деструктор неимеетпараметров;
класс можетиметьтолькоодиндеструктор;
деструктор - этофункция, и он можетбыть виртуальным;
невозможнополучитьв программеадресдеструктор);
еслидеструктор незадан в программе, тоон будетавтоматически сгенерирован компилятором;
деструктор можновызватьтакже, какобычнуюфункцию, например:
date *my_day; my_day->date::~date().
деструктор вызываетсяавтоматически при разрушении объекта.
Области видимости для
классов
int x= 2; class Example
{
void f () {x = 0;} short x
};
void f () {::x = 0;}