Программирование >>  Инициализация объектов класса, структура 

1 ... 170 171 172 [ 173 ] 174 175 176 ... 395


61.7, 11.7, 59.7,

#include <iostream> #include <string> #include Array.h

double da[10] = {

26.7, 5.7, 37.7, 1.7, 15.7, 48.7, 19.7 };

int ia[16] = {

503, 87, 512, 61, 908, 170, 897, 275, 653,

426, 154, 509, 612, 677, 765, 703 };

string sa[11] = {

a , heavy , snow , was , falling , when , they , left , the , police , station };

int main() {

вызвать конструктор для инициализации arrd Array<double> arrd( da, sizeof(da)/sizeof(da[0]) );

вызвать конструктор для инициализации arri Array<int> arri( ia, sizeof(ia)/sizeof(ia[0]) );

вызвать конструктор для инициализации arrs Array<string> arrs( sa, sizeof(sa)/sizeof(sa[0]) );

cout << sort array of doubles (size

<< arrd.size() << ) << endl;

sort(arrd, 0, arrd.size()-1 );

display(arrd);

cout << sort array of ints (size ==

<< arri.size() << ) << endl;

sort(arri, 0, arri.size()-1 );

display(arri);

<< sort array of strings (size

<< arrs.size() << ) << endl;

cout

) <<

sort(arrs, 0, arrs.size()-1 );

display(arrs);

return 0;

Если скомпилировать и запустить программу, то она напечатает следующее (эти строки искусственно разбиты на небольшие части):

sort array of doubles (size == 10) < 1.7 5.7 11.7 14.9 15.7 19.7 26.7 37.7 48.7 59.7 61.7 >

sort array of ints (size == 16)

< 61 87 154 170 275 426 503 509 612 653 677 703 765 897 908 >

sort array of strings (size == 11) < a falling heavy left police snow station the they was when >



В числе обобщеннгх алгоритмов, имеющихся в стандартной библиотеке C++ (и в главе 12), вы найдете также функции miin() и swap(). В главе 12 м1 покажем, как их использовать.



11. Обработка исключений

Обработка исключений - это механизм, позволяющий двум независимо разработанным программным компонентам взаимодействовать в аномальной ситуации, называемой исключением. В этой главе м1 расскажем, как генерировать, или возбуждать, исключение в том месте программы, где имеет место аномалия. Затем мы покажем, как связать catch-обработчик исключений с множеством инструкций программ:, используя try-блок. Потом речь пойдет о спецификации исключений - механизме, с помощью которого можно связать список исключений с объявлением функции, и функция не сможет возбудить никаких других исключений. Закончится эта глава обсуждением решений, принимаемых при проектировании программы, в которой используются исключения.

11.1. Возбуждение исключения

Исключение - это аномальное поведение во время выполнения, которое программа может обнаружить, например: деление на 0, в1ход за границы массива или истощение свободной памяти. Такие исключения нарушают нормальный ход работы программы, и на них нужно немедленно отреагировать. В C++ имеются встроенные средства для их возбуждения и обработки. С помощью этих средств активизируется механизм, позволяющий двум несвязанным (или независимо разработанным) фрагментам программы обмениваться информацией об исключении.

Когда встречается аномальная ситуация, та часть программы, которая ее обнаружила, может сгенерировать, или возбудить, исключение. Чтобы понять, как это происходит, реализуем по-новому класс iStack, представленный в разделе 4.15, используя исключения для извещения об ошибках при работе со стеком. Определение класса iStack

#include <vector> class iStack { public:

iStack( int capacity )

: stack( capacity ), top( 0 ) { }

bool pop( int &top value ); bool push( int value );

bool full();

bool empty();

void display(); int size();

private:

int top;

vector< int > stack; выглядит следующим образом:



1 ... 170 171 172 [ 173 ] 174 175 176 ... 395

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика