- •Структура платформы .NET
- •Схема выполнения программы в .NET
- •Схема работы компиляторов .NET
- •Достоинства языка С++
- •Структура программы
- •Модификаторы памяти
- •Пространство имен
- •Константы
- •Описание идентификаторов
- •Операции С++
- •Правила преобразования типов
- •Функции
- •ПЕРЕГРУЗКА ФУНКЦИЙ
- •Неоднозначность перегрузки
- •Шаблоны функций
- •Явная спецификация типов
- •Оперативная память
- •В адресном пространстве каждого процесса содержится:
- •Виртуальная память может находиться в трех состояниях
- •Средства защиты памяти
- •Страничное преобразование
- •ПРИМЕР РАБОТЫ С УКАЗАТЕЛЯМИ
- •Еще один пример с указателями
- •Утечки памяти
- •Процесс сборки мусора
- •Сборка мусора. Поколения объектов
- •Особенности ОС Windows
- •Процесс и поток
- •Очереди сообщений
- •Структура сообщения
- •Cпособы создания интерактивных Win приложений в VS C++
- •Функция WinMain
- •Создание окна
- •Функция окна
- •Цикл обработки сообщения
- •Определение запущенной копии приложения
- •Пример приложения
- •Команды передачи данных
- •Арифметические команды:
- •Каркас программы
- •Стековый фрейм
- •Парадигмы программирования
- •Элементы объектной модели
- •Преимущества объектной модели
- •Ограничения доступа
- •Спецификатор памяти static
- •Спецификатор const
- •Указатель this
- •Дружественные функции
- •Основные свойства и правила использования спецификатора friend:
- •Наследование
- •Основные правила использования базовых и производных классов:
- •Наследование атрибутов компонентов базового класса:
- •Множественное наследование
- •Использование виртуального класса
- •Полиморфизм
- •ПРОЦЕСС
- •Структура процесса
- •Поток (thread)
- •Создание и работа с потоками
- •Создание потока
- •Завершение потока
- •Совместимость потоков и стандартной библиотеки
- •Синхронизация потоков ПРИМЕР1
- •Как можно приостановить работу потока?
- •ПРИМЕР 2
- •Объекты синхронизации
- •Мьютекс. ПРИМЕР3
- •Критические секции ПРИМЕР4
- •События. ПРИМЕР5
- •Семафоры. ПРИМЕР6
- •Структура описания технологической операции
- •Типы программ
- •Жизненный цикл программного обеспечения
- •Структура процессов ЖЦПО
- •Стратегии конструирования ПО
- •Водопадная модель ЖЦПО
- •Макетирование
- •Спиральная модель БОЭМА
- •Инкрементальная модель
- •Модель быстрой разработки приложений (RAD)
- •Схема процесса XP.
- •Эксплуатационные требования к программным продуктам
Основные свойства и правила использования спецификатора friend:
friend функции не являются компонентами класса, нополучаютдоступковсемегокомпонентам;
если friend функции одного класса не являются компонентами другого класса, то они вызываются так же, как и обычные rлобальные функции (без
операторов . и ->);
если friend функции одного класса не являются компонентами другого класса, то они не имеют указателя this;
friend функции не наследуются в производных классах;
отношение friend неявляется транзитивным.
Объявление и разрушение глобальных объектов:
class А
{ int i; pubIic:
A(int I) : i(I)
{ cout « "class А" « i « " constructor\n";}
~A()
{ cout « "class А" « i « "destructor\n"; }
}; А а1(1),а2(2);
void main(void) { getch(); }
Результаты выполненияэтой программы: class А 1 constructor
class А2 constructor
< здесь можнонажатьлюбуюклавишу> class А2 destructor
class А 1 destructor
Объявление и разрушениелокальных объектов.
class А
{ int i; pubIic:
A(int I) : i(I) { cout « "class А" « i « " constructor\n"; }
~A() |
{ cout « "class А" « i « "destructor\n"; } |
|
}; |
|
|
void fuпction(void) |
|
|
{ cout« "begin\n"; |
|
|
А а1(1),а2(2); |
|
|
cout «"end\n"; } |
|
|
void main(void) |
|
|
{ cout« "before\n"; |
|
|
function(); |
|
|
cout « "after\n"; } |
} |
|
Результаты: |
|
|
before begin
class А 1 constructor class А2 constructor end
class А2 destructor class А 1 destructor after
Создание объектов в динамически выделяемой памяти
classА
{ int i; pubIic:
A(int I) : i(I) { cout « "class А" « i « " constructor\n"; } ~A () { cout « "class А" « i « "destructor\n"; }
};
void main(void)
{А *р1 == new А(1);
А*р2 == new А(2); delete р1;
delete р2; }
Результаты :
class А 1 constructor classА2 constructor classА 1 destructor classА2 destructor
Объявление объектов в виде компонентов в друrих классах.
class а
{int j; pubIic
a(int J} : j(J} {cout « "classа" « j « " constructor\n"; } ~a() { cout « "classа" « j « "destructor\n"; }
}; class b
{int i;
а а1; pubIic:
b(int I,int J} : а1 (J},i(I) { cout « "class b" « i « "constructor\n"; } ~b() { cout « "class b" « i « "destructor\n"; }
}; |
|
void main(void) |
|
{ bа1(1, 1}; |
|
b a2(2,1);} |
} |
Результаты: |
|
class а1 constructor |
|
class b1 constructor |
|
class а1 constructor |
|
class b2 constructor |
|
class b2 destructor |
|
class а1 destructor |
|
class b1 destructor |
|
class а1 destructor |
|