Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Амир_СистПрог.docx
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
90 Кб
Скачать
☆

Void Print(void) /* аспект виртуальной функции*/

{ printf("Число = %5d\n",num); }

};

class Tstrpole:public Tpole // класс Строка

{

private: char str[10];

public :

Tstrpole(char *st) { strcpy(str,st); }

Void Print(void) /* аспект виртуальной функции*/

{ printf("Строка = %s\n",str); }

};

void main()

{

setlocale(0,"russian"); int n,i; char st[80];

Tpole *a[10]; // массив указателей на объекты класса Tpole

for(i=0;i<10;i++)

{

printf("\nВведите целое число или строку: ");

scanf_s("%s",st,80);

if ((n=atoi(st))!=0||(strlen(st)==1 && st[0]=='0'))

a[i]=new Tnumpole(n); // Число

else

a[i]=new Tstrpole(st); // Строка

}

for(i=0;i<10;i++) a[i]->Print();

for(i=0;i<10;i++) delete a[i];

_getch();

}

  1. Исключения и их обработчики

Исключением называется событие, которое произошло во время выполнения программы, в результате совершения которого дальнейшее нормальное вы­полнение программы становится невозможным. Как правило, такие события являются ошибками в программе. Поэтому для дальнейшей работы прило­жения требуется или восстановление программы в рабочее состояние, или ее аварийное завершение с освобождением всех захваченных программой ресурсов.

В операционных системах Windows для этой цели предназначен механизм структурной обработки исключений (structured exception handling, SEH). Смысл механизма структурной обработки исключений заключается в следующем. В программе выделяется блок программного кода, в котором может прои­зойти исключение. Такой блок кода называется фреймом, а сам код называ­ется охраняемым кодом. Затем, после фрейма вставляется программный блок, который обрабатывает происшедшее исключение. Этот блок называется обработчиком исключения. После обработки исключения управление передает­ся первой инструкции, следующей за обработчиком исключения.

Очевидно, что для того чтобы использовать этот механизм в программе, в язык программирования C++ нужно ввести новые ключевые слова. Такими ключевыми словами являются try и except, которые расширяют спи­сок стандартных ключевых слов языка программирования C++ и различа­ются только компилятором фирмы Microsoft. Ключевое слово try отмечает

фрейм, а ключевое слово except отмечает обработчик исключения. В ре­зультате фрагмент программы, который использует механизм структурной обработки исключений, выглядит следующим образом:

{

// охраняемый код

}

except (выражение-фильтр)

{

// код обработки исключения

}

Обработка исключения

# include <windows.h>

#include <iostream.h>

{

int а = 10;

int *р = NULL; // пустой указатель на целое число

—tin/

{

cout « "а = " « *р « endl; // ошибка, так как р = NULL

}

except(EXCEPTION_EXECUTE_HANDLER)

{

cout « "There was some exception." « endl;

p = &a;

}

cout « "a = " « *p « endl; // нормально

return 0;

}

  1. Задача. Ввести с клавиатуры два вещественных числа и определить наибольшее из них.

#include <iostream>

using namespace std;

int main(int argc, char** argv) {

float A, B, Max;

printf("Enter the A and B: ");

scanf ( "%f%f", &A, &B );

if ( A > B )

{

Max = A;

}

else

{

Max = B;

}

printf ( "The largest %f",

Max );

return 0;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]