- •Структура платформы .NET
- •Схема выполнения программы в .NET
- •Схема работы компиляторов .NET
- •Достоинства языка С++
- •Структура программы
- •Модификаторы памяти
- •Пространство имен
- •Константы
- •Описание идентификаторов
- •Операции С++
- •Правила преобразования типов
- •Функции
- •ПЕРЕГРУЗКА ФУНКЦИЙ
- •Неоднозначность перегрузки
- •Шаблоны функций
- •Явная спецификация типов
- •Оперативная память
- •В адресном пространстве каждого процесса содержится:
- •Виртуальная память может находиться в трех состояниях
- •Средства защиты памяти
- •Страничное преобразование
- •ПРИМЕР РАБОТЫ С УКАЗАТЕЛЯМИ
- •Еще один пример с указателями
- •Утечки памяти
- •Процесс сборки мусора
- •Сборка мусора. Поколения объектов
- •Особенности ОС Windows
- •Процесс и поток
- •Очереди сообщений
- •Структура сообщения
- •Cпособы создания интерактивных Win приложений в VS C++
- •Функция WinMain
- •Создание окна
- •Функция окна
- •Цикл обработки сообщения
- •Определение запущенной копии приложения
- •Пример приложения
- •Команды передачи данных
- •Арифметические команды:
- •Каркас программы
- •Стековый фрейм
- •Парадигмы программирования
- •Элементы объектной модели
- •Преимущества объектной модели
- •Ограничения доступа
- •Спецификатор памяти static
- •Спецификатор const
- •Указатель this
- •Дружественные функции
- •Основные свойства и правила использования спецификатора friend:
- •Наследование
- •Основные правила использования базовых и производных классов:
- •Наследование атрибутов компонентов базового класса:
- •Множественное наследование
- •Использование виртуального класса
- •Полиморфизм
- •ПРОЦЕСС
- •Структура процесса
- •Поток (thread)
- •Создание и работа с потоками
- •Создание потока
- •Завершение потока
- •Совместимость потоков и стандартной библиотеки
- •Синхронизация потоков ПРИМЕР1
- •Как можно приостановить работу потока?
- •ПРИМЕР 2
- •Объекты синхронизации
- •Мьютекс. ПРИМЕР3
- •Критические секции ПРИМЕР4
- •События. ПРИМЕР5
- •Семафоры. ПРИМЕР6
- •Структура описания технологической операции
- •Типы программ
- •Жизненный цикл программного обеспечения
- •Структура процессов ЖЦПО
- •Стратегии конструирования ПО
- •Водопадная модель ЖЦПО
- •Макетирование
- •Спиральная модель БОЭМА
- •Инкрементальная модель
- •Модель быстрой разработки приложений (RAD)
- •Схема процесса XP.
- •Эксплуатационные требования к программным продуктам
Константы
Возможно использование трех типов цифровых констант:
десятичные : 80, 9, 1000000;
восьмеричные: 060, 07, 02345;
шестнадцатиричные: 0х80, 0хAFC
Описание идентификаторов
[<спецификаторклассапамяти>] [const] <спецификатортипа> <идентификатор> [=<начальноезначение>];
auto double first=123.34;
const floatpi = 3.14; int*x, z;
float* neary=NULL;
x= &z; // операция получения адреса
ТИПЫ данных
|
базовые |
|
производные |
|||
|
пустой |
скалярный |
|
скалярный |
структурный |
|
|
void |
|
||||
|
|
|
|
|
|
|
|
целочисленный |
вещественный |
enum |
массивы |
||
логический |
символьный |
|
целый |
float |
имя_типа* |
struct |
|
указатель |
|||||
|
|
|
|
|
|
|
|
char |
|
int |
double |
имя_типа& |
union |
|
|
ссылка |
||||
|
|
|
|
|
|
wchar_t |
long |
longdouble |
class |
short
Ссылки int a =3;
int & another = a;
another= another+ 1; // Переменнаяa= 4
Перечисление
enum Err{ ERR_READ, ERR_WRITE,ERR_CONVERT}; Errerror;
switch (error)
{
case ERR_READ: /* операция */ break;
case ERR_WRITE: |
/* операция */ break; |
case ERR_CONVERT: |
/* операция*/ break; |
} |
|
Массивы
Объявление: intmass [2]; float matr[6] [7];
unsigned long Arr3D[4] [2] [8] ; char x[][3] - {{9,8,7),{6,5,4},{3,2,1}};
chardata= "Этомассив";//data[10]="\0" Инициализация: charArrChar[] = {'W','O','R','L','D'};
intTemp[12] = {2, 4, 7, };
Обращение:
черезуказатель - char* pArr= ArrChar; charLetter= *pArr;
pArr+= 3; // указывает наArrChar[3] Letter = * (ArrChar+ 3) ;
поиндексу -
Letter = ArrChar[3];
В случае многомернымассивов
charArrayOfChar[3][2] = {'W','O','R','L','D','!'}; char* pArr = (char*)ArrayOfChar;
pArr+= 3; //элемент ArrayOfChar[1] [1] char Letter= *pArr;
Передача массивав качествепараметра const int ArSize = 8 ;
int sum_arr (int arr[ ] , int n ) ; int main ( )
{ int cookies [ArSize ] = { 1 , 2 , 4 , 8 , 16 , 32 , 64 , 128 } ; int sum = sum_arr (cookies , ArSize ) ;
std ::cout << " Всегосъеденопеченья : " << sum << " \ n " ; return 0;
}
int sum_arr( int arr [ ] , int n ) { int total = 0;
for ( int i = 0; i < n ; i ++ ) total= total + arr[ i ] ; return total ;
}
Распределениепамятидляструктуры
struct binar{ unsigned first :2; unsigned sec :2; unsigned third :3; unsigned forth :4; unsigned fifth :5; } int_val;
int_val.first = 0; int_val.sec = 0xf; int_val.third = 0; int_val.forth = 8; int_val.fifth = 0;
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
union int_or_long { int i; long l; } count;