Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2018, 09:09   #1
KsEnHH
Новичок
Джуниор
 
Регистрация: 22.04.2018
Сообщений: 2
По умолчанию OutOfMemory, OutOfRange - C++

Написать класс "вектор объекты которого хранят динамический одномерный массив вещественных чисел, таким образом, чтобы его конструктор запускал исключение OutOfMemory в случае, если не удается выделить необходимое количество памяти, и операция индексации запускала исключение OutOfRange, если индекс выходит за допустимые пределы. Написать функцию main, позволяющую создать вектор из вводимого с клавиатуры числа элементов, а также присвоить или напечатать выбранный элемент, пользующуюся этим классом и перехватывающую все запускаемые им исключения.


Я задание не хорошо поняла. Я сделала так, но это неправильно.

Код:
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    system("chcp 1251");
    int i, n;
    float *p;
    cout << " Размер массива -> ";
    cin >> n;
    p = new float[n]; // выделение памяти под n целых чисел
    if (p == NULL) // если не удалось выделить память
    {
        cout << " Не удалось выделить память ";
        return 1; // выход по ошибке, код ошибки 1
    }
    for (i = 0; i < n; i++)
    {
        cout << i +1 << "-й элемент = ";
        cin >> p[i];
    }
    cout << endl;
    for (i = 0; i < n; i++)
        cout << i + 1 << "-й элемент = " << p[i] << endl;
    delete p;
    p = NULL;
    system("pause");
    return 0;
}
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 07.05.2018 в 09:21.
KsEnHH вне форума Ответить с цитированием
Старый 07.05.2018, 09:17   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Вы вообще задание читали? У вас первая строчка какая? Написать КЛАСС. Где хоть один?
Где ваша генерация исключений? Где их перехват и обработка?
Код:
if (p == NULL)
Это бесполезно. new давно генерирует исключение, nullptr возвращает только ноексепт вариант.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка List index out of bounds или OutOfMemory d_adilet БД в Delphi 11 09.08.2012 06:02