- •Структура платформы .NET
- •Схема выполнения программы в .NET
- •Схема работы компиляторов .NET
- •Достоинства языка С++
- •Структура программы
- •Модификаторы памяти
- •Пространство имен
- •Константы
- •Описание идентификаторов
- •Операции С++
- •Правила преобразования типов
- •Функции
- •ПЕРЕГРУЗКА ФУНКЦИЙ
- •Неоднозначность перегрузки
- •Шаблоны функций
- •Явная спецификация типов
- •Оперативная память
- •В адресном пространстве каждого процесса содержится:
- •Виртуальная память может находиться в трех состояниях
- •Средства защиты памяти
- •Страничное преобразование
- •ПРИМЕР РАБОТЫ С УКАЗАТЕЛЯМИ
- •Еще один пример с указателями
- •Утечки памяти
- •Процесс сборки мусора
- •Сборка мусора. Поколения объектов
- •Особенности ОС Windows
- •Процесс и поток
- •Очереди сообщений
- •Структура сообщения
- •Cпособы создания интерактивных Win приложений в VS C++
- •Функция WinMain
- •Создание окна
- •Функция окна
- •Цикл обработки сообщения
- •Определение запущенной копии приложения
- •Пример приложения
- •Команды передачи данных
- •Арифметические команды:
- •Каркас программы
- •Стековый фрейм
- •Парадигмы программирования
- •Элементы объектной модели
- •Преимущества объектной модели
- •Ограничения доступа
- •Спецификатор памяти static
- •Спецификатор const
- •Указатель this
- •Дружественные функции
- •Основные свойства и правила использования спецификатора friend:
- •Наследование
- •Основные правила использования базовых и производных классов:
- •Наследование атрибутов компонентов базового класса:
- •Множественное наследование
- •Использование виртуального класса
- •Полиморфизм
- •ПРОЦЕСС
- •Структура процесса
- •Поток (thread)
- •Создание и работа с потоками
- •Создание потока
- •Завершение потока
- •Совместимость потоков и стандартной библиотеки
- •Синхронизация потоков ПРИМЕР1
- •Как можно приостановить работу потока?
- •ПРИМЕР 2
- •Объекты синхронизации
- •Мьютекс. ПРИМЕР3
- •Критические секции ПРИМЕР4
- •События. ПРИМЕР5
- •Семафоры. ПРИМЕР6
- •Структура описания технологической операции
- •Типы программ
- •Жизненный цикл программного обеспечения
- •Структура процессов ЖЦПО
- •Стратегии конструирования ПО
- •Водопадная модель ЖЦПО
- •Макетирование
- •Спиральная модель БОЭМА
- •Инкрементальная модель
- •Модель быстрой разработки приложений (RAD)
- •Схема процесса XP.
- •Эксплуатационные требования к программным продуктам
|
Структура программы |
||||
#include "stdafx.h “ |
|
файлдля подключениязаголовочных |
|||
float tax (float) ; |
|
||||
|
файлов, используемыхв проекте. |
||||
#include <clocale>; |
|
||||
|
|
Объявлениефункций |
|||
int main(int argc,char *argv[]) |
|
||||
|
#include "targetver.h" |
||||
{ std::setlocale(LC_ALL,"Russian_Russia.1251"); |
|||||
#include <iostream> |
|||||
floatcena, tax_amt, total; |
|
||||
|
Главная#includeфункция<conio.программыh> |
||||
std::cout << "\nСтоимостьтовара: "; |
|
||||
|
|
||||
std::cin >> cena; |
|
|
#include <SDKDDKVer.h> |
||
tax_amt = tax(cena); |
|
|
|||
|
|
|
|||
total = cena + tax_amt; |
|
|
|
||
std::cout << "\nТовар: " << cena<<std::endl; |
|
||||
std::cout << "Налог: " << tax_amt; |
|
|
|||
std::cout << "\nВсего: " << total; |
|
|
|||
//_getch(); |
|
|
|
||
return 0;} |
|
|
|
||
float tax (floatamount) |
|
Описаниевспомогательнойфункции |
|||
{ |
float rate = 0.065; |
|
|||
|
|
|
|||
return(amount * rate); |
} |
|
|
Определение времени жизни и области
видимости переменных
Время жизнипеременнойопределяетсяпоследующимправилам:
переменныеобъявленныенавнешнемуровне, всегдаимеют глобальноевремя жизни;
переменные,объявленныенавнутреннемуровне, имеют локальноевремя жизни. Можнообеспечитьглобальноевремя жизнидля переменнойвнутриблока, задаваяей класс памяти static приееобъявлении.
Видимостьпеременнойв программе определяется по правилам:
переменные,объявленныеилиопределенныенавнешнем уровне, видимыотточкиобъявленияилиопределениядо конца исходногофайла.;
переменные,объявленныеилиопределенныенавнутреннем уровне, видимыотточкиобъявленияилиопределениядо конца блока;
переменныеизобъемлющихблоков, включаяпеременные, объявленныенавнешнемуровне, видимы вовнутреннихблоках.
Модификаторы памяти
auto — автоматическаяпеременная. Память выделяется в стекеи при необходимости инициализируется каждый раз при выполнении оператора,содержащегоееопределение. Освобождение памяти - при выходе из блока
extern — переменная определяетсяв другом месте программы.
static — статическая переменная. Времяжизни — постоянное. Инициализируетсяодин раз при первом выполнении оператора, содержащегоопределение переменной. В зависимостиот расположенияоператора описания статическиепеременные могут быть глобальными и локальными.
register — аналогично auto, но память выделяется по возможности в регистрахпроцессора.
Пространство имен
Пространство имен namespace - логически объединяет классы с близкой функциональностью предназначено для разрешения конфликтов между именами в разных сборках.
namespace Jack { void fetch( ) ; int pal;} namespace Jill {double fetch ; int pal ;}
Jack :: pal = 12 ;
Объявления using и
директивы using
namespace Jill { int pal; double fetch ; } ;
har fetch ; int main ( )
{
using Jill :: fetch ; double fetch ; cin >> fetch ; cin > > :: fetch ; }
using namespace System; std::cout<<“HELLO WORD”<<std::endl using namespacestd;
cout<<“HELLO WORD”<<endl
Jack :: pal = 3 ;
Jill :: pal = 10 ;
using Jack :: pal ; using Jill :: pal ;
pal = 4 ; / / Конфликт имен