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

TRY/CATCH - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ функция удаления и добавления элементов. что не так с програмой? http://www.cyberforum.ru/cpp-beginners/thread919084.html
#include <iostream> using namespace std; struct node{ double a; double b; node *next;}; node *head= NULL; node *p, *tail; void add(int n){ int i;
C++ Ошибки в коде, Borland C++ 3.1 Добрый день! Подскажите пожалуйста, в коде 2 ошибки, не понимаю как их исправить. #include <iostream.h> #include <iomanip.h> #include <stdlib.h> #include <time.h> const int size = 20; const int hor = 10, ver = size; void bucketSort(int); http://www.cyberforum.ru/cpp-beginners/thread919072.html
C++ Как то сложно написана программа HelloWorld
В Dev-C++ увидел пример... #include <iostream> int main(int argc, char** argv) { std::cout << "Hello world!\n"; return 0; } не могли бы разъяснить мне этот код) желательно написать тему, чтобы узнать поподробней о этом)
C++ Второй способ отсева элементов из массива?
День добрый! Год назад сдал курсовую работу на тему "Отсев элементов из заданного массива". На C++. В этом году мне дали задание по практике сделать тоже самое, только двумя алгоритмами. Суть курсовой следующая: Цель данной работы – создать программу, которая удаляет в заданном массиве Х(n) «лишние» (кроме первого) элементы так, чтобы оставшиеся образовывали возрастающую...
C++ Передать объект fstream функции http://www.cyberforum.ru/cpp-beginners/thread918986.html
Здравствуйте. Хочу, чтобы функция принимала в качестве аргумента объект fstream. Примерный вид программы: #include <fstream> using namespace std; void test(fstream a){ a.open("test2.txt"); a << "123" << endl; a.close(); }
C++ Генерация уникальных чисел Посоветуйте способ генерации УНИКАЛЬНЫХ чисел, чтобы для бинарного дерева подошли... Спасибо подробнее

Показать сообщение отдельно
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
07.07.2013, 13:32     TRY/CATCH
а что такое MASS[100][100]; массив?
Подозреваю, что никак. Обращение к массиву - чисто сишная операция, заключающаяся в доступе по указателю со смещением. Почему она должна генерировать исключение? Си-Массив не знает же даже своего размера!

Добавлено через 19 минут
Вот STLевский вектор знает свой размер и бросает соответствующее исключение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <stdexcept>
#include <vector>
using namespace std;
int main()
{
    vector<vector<int>>MASS(100, vector<int>(100));//инициализация 2d вектора 100 на 100
    try {       
        MASS.at(101).at(10)=1234;// попытка обращения к элементу MASS[101][10]
        cout<<"Success ";
    }
    catch (out_of_range const& e) {  //Исключение успешно ловится 
        cerr<<"Failure: "<<e.what()<<endl;//и ошибка успешно выводится 
    }   
    system("pause");
    return 0;
}
Добавлено через 5 минут
Вот только я сам недавно узнал, что метод at() бросает исключение, а аналогичный оператор [] нет.
Наверное программисты STL схалтурили и реализовали оператор индексации тупо без проверок всевозможных, чтоб был как в Си
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru