- // множественное наследование
- class circus : public color, public figure
- {public:
- circus(int x, int y, int r, int c):
- color(c), figure (x,y,r) {}; // наследование конструкторов
- void show();
- void hide();
- };
- void circus::show() { setcolor(c); circle(x,y,r); }
- void circus::hide() { setcolor(BLACK); circle(x,y,r); }
- void main(void)
- { int gdriver = DETECT, gmode;
- initgraph(&gdriver, &gmode, "C:/BC5/BGI");
- // figure f(320,240,10); // так нельзя!
- circus cr(320,240,10,YELLOW);
- cr.show();
- getch(); closegraph();
- }
Статические члены класса - class st {
- static int c;
- public:
- static int incr(void) { return c++; }
- st(void) {cin << incr(); }
- ~st(void) { c--; }
- }
- . . . .
- st::c=0;
- st::incr();
Шаблоны - template // Шаблоны функций
- T sqr ( T x )
- {
- return x*x ;
- }
- main()
- { int i = 3;
- float x = 3.1;
- cout << sqr(i) << “\n”;
- cout << sqr(x) << “\n”;
- }
Шаблоны - template // Шаблоны классов
- class vec
- { T *q;
- int n;
- public:
- vec (void);
- };
- template
- vec::vec(void)
- { q = new T[size];
- };
- void main()
- { vec d;
- vec k; }
Обработка исключений - Обработка исключений в стиле С++
- • try (пытаться) - начало блока исключений;
- • catch (поймать) - начало блока, "ловящего" исключение;
- Finally (завершение) – всегда выполняется последним
- • throw (бросить) - ключевое слово, "создающее" ("возбуждающее") исключение.
- Блок Try обработчика исключений Try...Catch...Finally содержит раздел кода, который будет отслеживать обработчик ошибок. Если во время выполнения какого-либо кода данного раздела возникает ошибка, Visual Basic проверяет каждый оператор Catch в пределах группы операторов Try...Catch...Finally, пока не обнаружит тот, условия которого совпадают с условиями ошибки. При обнаружении управление передается первой строке кода в этом блоке Catch. Если соответствующий оператор Catch не найден, поиск продолжается в операторах Catch внешнего блока Try...Catch...Finally, который содержит блок, в котором возникло исключение. Этот процесс продолжается по всему стеку, пока не будет обнаружен соответствующий блок Catch в текущей процедуре. Если он не найден, выдается ошибка.
- Код в разделе Finally всегда выполняется последним, непосредственно перед тем, как блок обработки ошибок выйдет из области видимости, независимо от того, выполнен ли код в блоках Catch. В разделе Finally следует поместить код очистки, чтобы закрыть файлы и освободить объекты.
Обработка исключений - void func()
- {
- try { throw 1;
- }
- catch(int a)
- { printf("Caught exception number: %d\n",a);
- return;
- }
- printf("No exception detected!\n");
- return;
- }
- Если выполнить этот фрагмент кода, то мы получим следующий результат: Caught exception number: 1
- Теперь закоментируйте строку throw 1; и функция выдаст No exception detected!
Do'stlaringiz bilan baham: |