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

Делаю Memory Manager Array с простым (int) exception последний элемент чудит - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ "Плейсхолдер" (placeholder) http://www.cyberforum.ru/cpp-beginners/thread630846.html
"Плейсхолдер" (переводится как прототип или заполнитель ?) - так говорят многие участники на этом форуме, объясните пожалуйста, что это такое ?? поисковик выдал мне много всего от хабра с html5 до...
C++ Рисование ASCII кодами и русский текст в консоли Всем добрый вечер. И вот такой вопрос есть. Сначала печатаю в консоли текст а под ним горизонтальную линию. Только вместо линии получаются каракули. Уже по разному пробовал, шрифты менял и ничего не... http://www.cyberforum.ru/cpp-beginners/thread630821.html
C++ Составить программу для вычисления количества цифр среди элементов списка.
Тема: Динамические структуры данных. Линейные списки. Дан список А, состоящий из записей: первое поле – символ, второе – адрес следующего элемента. Составить программу для вычисления количества цифр...
C++ Запуск программ на других компах
Всем привет, вообщем перерыл весь интернет, как запускать скомпилированную программу на разных компьютерах, пробывал ставить и статич библиотеки и dll и mt\ и тд вылетали разн ошибки, вообщем...
C++ Цельсий в Фaренгейт и Реoмюр http://www.cyberforum.ru/cpp-beginners/thread630771.html
========== Для тeмпературы от -5 до +5 °C с шaгом 1.25 °C вывeсти соoтвeтствующие знaчения по Фaренгейту и Реoмюру. oформить вывoд в видe крaсивpй тaблицы. Дробные числа округлить до 2 знаков...
C++ Define внутри макроса Подкажите возможно ли написать макрос кот. создаст #define? например: #define MACRO(name) #define NAME name знаю, что напрямую так не напишешь т.к. второй define будет взят в кавычки, но может... подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
30.07.2012, 21:38
Что-то вы намудрили с исключениями. В чём прикол выбрасывать их в геттеро-сеттерах и тут же ловить? Это ведь должно быть головная болью пользователя контейнера, если он обращается чёрти-куда, хотя может узнать, куда может обращаться.

Не по теме:

> ignore the set, because index of element bigger then massive size
И английский не мешало бы подтянуть.



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Point& Array::GetElement(const int index) const
{
    try {
        if (index > m_size || index < 0) { 
            throw -1;
        } 
        return m_data[index];
    } 
    catch (int throw_variable) {
        std::cout << "\nindex incorrect, index too big or too small " 
                  << throw_variable 
                  << std::endl; 
    }          
}
В массиве 3 элемента, я обращаюсь к элементу номер 42. Следите за руками:
1. Входим в try-блок.
2. Проваливаем проверку в if, бросаем минус единицу.
3. Она перехватывается catch-блоком.
4. Выводится на экран сообщение.
// а теперь интересное
5. Выходим из catch-блока.
6. Функция должна была вернуть ссылку на элемент, но ведь return не был вызван.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru