Форум программистов, компьютерный форум CyberForum.ru

Исключения языка C++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Флаг eofbit в потоке и условные операторы http://www.cyberforum.ru/cpp-beginners/thread922422.html
Если в потоке установлен только флаг eofbit, такой поток для условных операторов if(), while() и др. - true или false?
C++ Доступ к закрытым членам базового класса помогите понять что я не так сделал ? #include <iostream> using namespace std; class A { int PrA1; public: int PuA1; http://www.cyberforum.ru/cpp-beginners/thread922408.html
mem_fun и mem_fun_ref C++
Здорова! Есть задачка : "Реализуйте и протестируйте четыре функции mem_fun() и mem_fun_ref() (параграф 18.4.4.2)." Ну там наверно ошиблись не 4 а две функции да пусть две функции будет. Ну и как же мне их реализовать? Чем они хоть отличаются? Это похоже одни и те же функции, токо первая с указателями работает, а вторая с объектами ли хз. В общем свои нужно написать, наверно свой шаблон нужно...
C++ С чего начать?
Я уже давно заинтересован в программировании и хочу заняться самообучением. Но не знаю с чего начать, какой язык программирования стоит выбрать для начала? Какие книги стоит приобрести?
C++ Чтение из двух файлов и запись в один http://www.cyberforum.ru/cpp-beginners/thread922359.html
Помогите с одной задачей. У меня есть два файла: 1. "oldmast.dat" в котором 4 поля: номер счета клиента, фимилия, имя и баланс; 2. "trans.dat" где 2 поля: номер счета клиента и вносимая сумма; И есть еще один пустой файл, который должен записать следующее, если номер счета совпадает в 1 файле и во 2 файла, то я должен их суммировать и записать в "newmast.dat"... Остальные случаи пока не...
C++ Расставить на доске N ферзей так, чтобы они не били друг друга смысл в том чтобы расставить на шахматной доске размером N*N, N ферзей так, чтобы они не били друг друна. пыиался сделать что то методом перебора, но программа зависает. где здесь может быть ошибка? #include <iostream> #include <cmath> using namespace std; int num; int q; bool ext = false; подробнее

Показать сообщение отдельно
tramp_1-3
 Аватар для tramp_1-3
14 / 14 / 1
Регистрация: 13.10.2012
Сообщений: 428
13.07.2013, 06:47     Исключения языка C++
Задание в книге по программированию выполнил отчасти (всё что нужно уже изменил и оригинал не нужен). Не знаю как сделать так, чтобы catch ( hmeanexcp & excp ) возвращал управление обратно в цикл, это же вроде противоречит самому механизму исключений? catch ( gmeanexcp & excp ) написал правильно и он корректно работает.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
#include <exception>
using std :: cout;
using std :: exception;
using std :: cin;
#include <cmath>
class hmeanexcp : public exception {
    public:
        hmeanexcp ( ) : exception ( ) { };
        const char * what ( ) {
            return "Function hmean (): Wrong input, try again.";
        };
};
class gmeanexcp : public exception {
    public:
        gmeanexcp ( ) : exception ( ) { };
        const char * what ( ) {
            return "Function gmean (): Wrong input, exit from cycle.";
        };
};
double hmean ( double a, double b ) throw ( hmeanexcp &  );
double gmean ( double a, double b ) throw ( gmeanexcp &  );
int main ( ) {
    double x, y, z;
    cout << "Enter two numbers: ";
    try {
        while ( cin >> x >> y ) {
            z = hmean ( x, y );
            cout << "Harmonic mean of " << x << " and " << y << " is " << z << "\n";
            cout << "Geometric mean of " << x << " and " << y << " is " << gmean ( x, y ) << "\n";
            cout << "Enter next set of numbers <q to quite>: ";
        };
        
    }
    catch ( gmeanexcp & excp ) {
        cout << excp.what ( ) << "\n";
    }
    //Г·ГІГ® ГЇГЁГ±Г*ГІГј Гў catch ( hmeanexcp & excp )?
    cout << "Bye!\n";
    cin.ignore ( 1 );
    cin.get ( );
    return 0;
};
double hmean ( double a, double b ) throw ( hmeanexcp & ) {
    if ( a == -b ) 
        throw hmeanexcp ( );
    return ( 2.0 * a * b / ( a + b ) );
};
double gmean ( double a, double b ) throw ( gmeanexcp & ) {
    if ( a < 0 || b < 0 )
        throw gmeanexcp ( );
    return sqrt ( a * b );
};
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru