поиск по сайту  megainformatic  en translate to English   translate to Chinese
соц. сети twitter youtube
    поддержать
540 руб / 9 usd
Серебряный юзер
скачать
версия 09.02.2018
размер: 1,12 Gb
Сегодня
19 февраля 2018
20:25
Вход Регистрация Забыли пароль ?

megainformatic - GET и POST запросы
GET и POST запросы
подробнее...

Теги

создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт

Статьи сайта

Развитие проекта fle game engine

Бинарная философия / Binary Philosofy

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 14

Вакансии

Коллекция php скриптов

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 15

megainformatic - Приключения Кости Коробкина - В гостях у тёти Светы часть 1 - интерактивный комикс

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс

fle game generator - fle генератор игр - fly snow 3d падающий снег - расширяемый генератор визуальных образов, с музыкой mp3, ogg и генерацией игр

fle game generator - fle генератор игр - fly snow 3d падающий снег - расширяемый генератор визуальных образов, с музыкой mp3, ogg и генерацией игр

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 16

megainformatic Создание и размещение видео баннера mp4

megainformatic Использование баннер-ротатора

megainformatic fle game engine Simple game / Пример простой игры

megainformatic fle game engine Simple game / Пример простой игры - страница 1 - Спрайты

Creating game on fle game engine - Draw Line - This can be helpful/ Создание игры на fle game engine - Рисование линий - Это может пригодиться.

Платная подписка на fle game engine

megainformatic Создание игры на fle game engine - Simple game - страница 2 - Объекты / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 3 - Объекты / Пример простой игры

Платная подписка на fle game engine

megainformatic Создание игры на fle game engine - Simple game - страница 4 - Код - Настройка параметров Scene Editor fge и написание кода для вывода спрайта шарика в вашем первом игровом приложении / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 5 - Отображаем прыгающий шарик, узнаем как задается для спрайта его центр и знакомимся с векторной системой координат / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 6 - Загрузка игровой сцены / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 7 - Перемещения игровой сцены / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 8 - Закрываем часть сцены от пустот при помощи черной текстуры с прорезью, ограничиваем перемещение сцены / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 9 - Реализуем корректное попадание в ямы и около ям - определяем границы спрайтов ям и спрайта прыгаюшего шарика / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 10 - Проверка столкновений / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 11 - Игровой счёт, звуки, музыка / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game extended - страница 1 - Создание новой сцены (уровня, комнаты), добавление новых возможностей / Пример простой игры - расширенная версия

Платная подписка на simple game fle game engine версия 1.0.7 от 05.01.2017

Платная подписка на simple game fle game engine версия 1.0.7 от 05.01.2017

Советы копирайтеру - как не обмануть и не быть обманутым

Balls and Holes игра скачать + как создать игру на fle game engine

Balls and Holes игра скачать + как создать игру на fle game engine

Something: Unexplained 2 captive of desires

KKK Коллекционное издание: Веселый Буквоежка Комикс + Костя Коробкин Комикс + Нечто: Необъяснимое в плену желаний 2 начало

KKK Коллекционное издание: Веселый Буквоежка Комикс + Костя Коробкин Комикс + Нечто: Необъяснимое в плену желаний 2 начало

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 17

megainformatic - Игродельня

megainformatic - Новости страница 542

megainformatic - С днём защитника отечества !

megainformatic fle game engine fle / Пример простой игры fle - Скроллинг больших локаций

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 18

megainformatic - Шарики и Ямки игра PC

megainformatic - Шарики и Ямки игра PC

megainformatic fle game engine fle / Изучаем основы c++ - переменные на примере реального игрового проекта Balls and Holes

megainformatic - Реферальная ссылка

megainformatic - Изменение постоянных свойств в зависимости от контекста

megainformatic - Костя Коробкин Компания Зергов онлайн комикс читать

megainformatic - Искатели приключений Зеленый Шарик

megainformatic - Без названия

megainformatic - Мульти анимация

Pencil, Paper and the Ball PC game

megainformatic - Костя Коробкин Компания Зергов онлайн комикс читать страница 2

megainformatic - Костя Коробкин Компания Зергов онлайн комикс читать страница 3

megainformatic - fle game engine - создание 3d игры - simple game 3d

 

Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008

 
     
  Урок 1 Основные операторы языка C++ (часть 2)  
     
 

Данный небольшой урок является введением в программирование на C++ в MSVS 2008

Вам нужно иметь установленную среду Microsoft Visual Studio 2005 или 2008 (можно триал)

 
     
  [назад] [далее] [к содержанию]  
     
  Мы рассматриваем основные конструкции языка C++ на примере работы в Microsoft Visual Studio 2008  
     
  В предыдущем уроке мы создали небольшой калькулятор. Этот урок позволил нам бегло познакомиться с некоторыми из конструкций языка C++ и некоторыми функциями.  
     
 

в этом уроке нам осталось рассмотреть

- операторы объявления переменных;

- операторы обработки исключений;

 
     
 

- операторы объявления переменных;

объявление (declaration) переменной сообщает компилятору, что элемент программы или имя существуют. Определения (definitions) определяют какой код или данные описывает имя. Имя должно быть объявлено до того, как оно будет использовано!

Примеры объявлений

// Declare and define int variables i and j. объявление переменных и присвоение начального значения
int i;
int j = 10;

// Declare enumeration suits. объявление перечисления
enum suits { Spades = 1, Clubs, Hearts, Diamonds };

// Declare class CheckBox. объявление класса
class CheckBox : public Control
{
public:
Boolean IsChecked();
virtual int ChangeState() = 0;
};

 
     
 

Объявление (declaration) привносит в программу одно или более имен. Объявления могут производиться в программе многократно. Поэтому классы (classes), структуры (structures), перечисляемые типы (enumerated types) и другие определяемые пользователем типы могут быть объявлены в каждом требующем компиляции модуле. Ограничением такого множественного объявления является необходимость полной идентичности всех объявлений. Объявления могут служить также в качестве определений (definitions) исключая следующее:

- это прототип функции (объявление функции без ее реализации (тела));

- содержит спецификатор extern, но не имеет инициализатора (объекты и переменные) или тела функции (функции). Это означает, что определение не нужно в текущем модуле и применяет к имени внешнее связывание;

- это статичный член данных внутри объявления класса; Поскольку статичные члены данных класса представляют самостоятельные переменные, используемые совместно всеми объектами класса, они должны быть определены и инициализированы внутри объявления класса.

- это объявление имени класса без последующего определения;

- это оператор typedef;

Примеры объявлений, которые не имеют последующих определений

extern int i;
char *strchr( const char *Str, const char Target );

 
     
 

Несколько слов об определениях (definitions)

Определения являются уникальными описаниями (спецификациями) объектов или переменных, функций, классов или перечислителей (enumerator). Поскольку определения должны быть уникальными, программа может содержать только одно определение для данного программного элемента.

 
     
 

Соответствие между объявлениями и определениями сводятся к одному. Существуют два случая в которых программный элемент может быть объявлен и не определен:

- функция объявлена, но ни разу не вызывается или не используется выражений требующих адреса данной функции;

- класс используется только таким образом, что не требует определения. Однако класс должен быть объявлен.

Вот пример демонстрирующий указанный случай:

// definitions.cpp
class WindowCounter; // Forward reference; no definition

class Window
{
// Definition of WindowCounter not required
static WindowCounter windowCounter;
};

int main()
{
}

 
     
  Также советую Вам прочесть раздел документации MSVS 2008 посвященный авто-создаваемым и статичным объектам - MSVS 2008 Documentation (далее просто Help) - Development Tools and Languages > Visual Studio > Visual C++ > Reference > C/C++ Languages > C++ Language Reference > Statements > Declaration Statements  
     
 

- операторы обработки исключений;

информацию по ним вы найдете в Help - Development Tools and Languages > Visual Studio > Visual C++ > Reference > C/C++ Languages > C++ Language Reference > Statements > Exception Handling

Тема достаточно обширна, поэтому я сразу отправляю Вас к первоисточнику. В кратце могу лишь отметить, что исключения являются ошибками времени выполнения, связанными с делением на ноль, защитой памяти (Access Violation) и т. п.

Базовыми операторами для этих целей являются try, catch и throw

 
     
  try {
// code that could throw an exception
}
[ catch (exception-declaration) {
// code that executes when exception-declaration is thrown
// in the try block
}
[catch (exception-declaration) {
// code that handles another exception type
} ] . . . ]
// The following syntax shows a throw expression:
throw [expression]
 
     
 

Язык C++ обеспечивает встроенную поддержку обработки аварийных ситуаций, известных как исключения (exceptions), которые могут происходить во время выполнения Вашей программы. Операторы try, throw и catch реализуют обработку исключений. При использовании обработки C++ исключений Ваша программа может взаимодействовать с непредвиденными событиями при высокоуровневом исполнимом контексте, который способен лучше реагировать на такие аварийные события. Такие исключения обрабатываются кодом находящимся вне основного потока выполнения программы.

Рассмотрим как работает тройка операторов try, catch, throw

Код после оператора try представляет защищенную секцию кода. Выражение появления исключения (throw expression) вызывает исключение (raises exception). Блок кода после catch это обработчик исключения захватывающий (обрабатывающий) исключение появившееся в выражении появления исключения. Оператор объявления исключения (exception-declaration) указывает на тип исключения обрабатываемого оператором catch. Таким типом может быть любой действительный тип данных, включая класс C++. Если оператор объявления исключения содержит многоточие (...), оператор catch обрабатывает любые типы исключений, включая исключения на C и сгенерированные системой и приложениями, такие как защита прав доступа к памяти, деление на ноль, переполнение числа с плавающей точкой. Такой обработчик должен быть последним из всех обработчиков блока try.

Операнд при операторе throw синтаксически подобен операнду оператора return.

Исполнение происходит в следующей последовательности:

1. Управление достигает оператора try при нормальном последовательном выполнении. Защищенная секция внутри блока try исполняется.

2. Если исключений во время выполнения защищенной секции кода не произойдет, оператор catch, следующий за блоком try не будет выполнен. Исполнение продолжается начиная с оператора следующего за последним оператором catch в том блоке try в котором отслеживается (thrown) исключение.

3. Если исключение произошло (thrown) во время выполнения защищенной секции кода или в любой процедуре защищенной секции (при прямом или косвенном вызове), будет создан объект исключения из объекта представленного операндом при операторе throw. (Это подразумевает, что будет вовлечена копия конструктора). Начиная с этого места компилятор отыскивает оператор catch в высокоуровневом контексте исполнения, который способен обработать исключение с произошедшим (thrown) типом (или обработчик catch, который способен обрабатывать любые типы исключений). Обработчики catch проверяются в порядке представления в блоке try. Если требуемый обработчик отсутствует проверяется следующий динамически замкнутый try - блок. Этот процесс продолжается до тех пор, пока не закончится внешний замкнутый try - блок.

4. Если подходящий обработчик так и не найден или если исключение произошло во время развертывания, но до получения управления обработчиком, вызывается предопределенная функция времени выполнения terminate. Если исключение произошло после прохождения по блоку throw, но до начала развертывания, вызывается terminate.

5. Если требуемый обработчик catch найден, и он захвачен по значению, его формальный параметр инициализируется копированием объекта исключения. Если он захвачен по ссылке, параметр инициализируется ссылкой на объект исключения. После инициализации формального параметра начинается процесс развертывания стека. Это вызывает разрушение всех автоматических объектов, созданных (но еще не уничтоженных), между началом блока try соответствующего обработчику catch и местом срабатывания (throw) исключения. Разрушение происходит в порядке обратном порядку создания. Обработчик catch исполняется и программа продолжает выполнение со следующей за последним обработчиком строки (т.е. с первого оператора или конструктора не являющегося обработчиком catch). Управление может передаваться на обработчик catch только для сработавших (thrown) исключений и никогда посредством операторов goto или метки case оператора switch.

 
     
 

Следующий пример из документации по MSVS показывает использование блока try и соответствующего ему обработчика catch. Пример определяет ошибку выделения памяти при использовании оператора new. Если new прошел успешно catch обработчик не будет исполнен:

// exceptions_trycatchandthrowstatements.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
int main() {
char *buf;
try {
buf = new char[512];
if( buf == 0 )
throw "Memory allocation failure!";
}
catch( char * str ) {
cout << "Exception raised: " << str << '\n';
}
}

 
     
  в следующем уроке мы познакомимся с особенностями создания оконных Win32-приложений  
     
     
     
     
     
  [назад] [далее] [к содержанию]  
 

Оставленные комментарии



Время загрузки: 1,5087