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

Исключения:: вопрос - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ шестнадцатеричной системы в двоичную и наоборот. http://www.cyberforum.ru/cpp-beginners/thread293540.html
Разработка программы перевода чисел из шестнадцатеричной системы в двоичную и наоборот.
C++ С++ проверка аргументов Подскажите код для проверки аргументов командной строки на входе программы. http://www.cyberforum.ru/cpp-beginners/thread293539.html
Функция с CharToOem не возвращает слово через return C++
Здравствуйте! У меня есть такая: ф-ия char* rus3(char* c) { char buf; CharToOem(c,buf); return buf; }
C++ Преобразование string to char
В общем никак не получается перегнать из строки в чар. Что надо: Имеется StringGrid и структура. Обьявлена структура как: struct Cities { char city,country; }; Далее
C++ Общие элементы в массивах http://www.cyberforum.ru/cpp-beginners/thread293529.html
Здравствуйте. Задача: есть два возрастающих массива длиной k и m. нужно найти общие элементы и разместить их в массиве t. Вот мой код, но он работает некорректно при выводе элементов массива на экран, не могу понять где ошибка (код скопировал из Билдера, если кто подскажет как его отображать с тегами буду благодарен). #include <stdio.h> #include <conio.h> #include <iostream.h> using...
C++ Ошибки при считывании строки из файлы Добрый вечер. Бьюсь с этой проблемой уже не первый день. Но вразумительно ответа в интернете так и не нашел. В программе нужно считать данные из файла(имя товара, имя марки, и цену) и занести все это в динамическую структуру, где все элементы упорядочены по имени товара. вот сама программа: // hh.cpp : main project file. #include "stdafx.h" #include <iostream> #include <fstream> подробнее

Показать сообщение отдельно
Нач_физик
2 / 2 / 0
Регистрация: 12.02.2011
Сообщений: 49
11.05.2011, 22:25     Исключения:: вопрос
Прошу консультации по теоретическому вопросу.

Фрагмент кода
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
#include <cstdlib>
#include <iostream>
#include <math.h>
#include <time.h>
using namespace std;
 #include <windows.h>
 
//**************** Класс исключения "выход за пределы индексов массива"***
class ValException
{
           public:
             int idx;
             ValException(int i)         //конструктор
             {
               idx = i;
             }
};
    void SetValue(double val,int i,int n, double a[] )
  {
 
        if (val+1 < -1 || val+1 > 1) //аргументы выходят за пределы границ
       {
        a [i] =0.0;
        throw ValException(i);
        }
 
         a [i] =asin(val+1);           // нормальная ситуация
 
 }
int main(int argc, char *argv[])
{
    
    const int n1=25;
    double a [n1];
    double x = -3.0;
    for (int i=0; i<n1;i++,x+=0.2)
     {
          try
            {
                SetValue(x,i,n1,a);    //  пытаемся сформировать массив
     cout<<"Значение аргумента в диапазоне [-1 1]  "<<i<<endl;
             }
 
        catch  (ValException ex) //перехват исключений
            {
               cout<<"Выход аргументов из интервала -1..1 " <<ex.idx<<endl;
             }
        }
       system("PAUSE");
    return EXIT_SUCCESS;
}
Собственно вопрос: строка
C++
1
2
 
throw ValException(i)
Правильно ли я понимаю-throw вызывает конструктор класса ValException с параметром (i)? А разве может не член класса вызвать конструктор? И что происходит ? создается обект? А имя объекта где? в catch передается обект ех класса ValException, а кто его создаети самое главное кто имя то ему присваивает?
И ещё, по условию задачи при возникновении исключения в а[i] должно быть записан ноль , првильно ли выполнена операция, или по правилам это должно происходить в блоке catch (ValException ex) ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru