Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
ForestGump
0 / 0 / 0
Регистрация: 15.09.2015
Сообщений: 4
1

Возвращение объекта класса из i-го элемента массива

25.09.2015, 07:12. Просмотров 833. Ответов 5
Метки нет (Все метки)

Доброго времени суток!

Помогите, пожалуйста, с выполнением задания лаб. работы.

Необходимо написать функцию, которая б возвращала объект класса из i-го элемента массива.
Перед этой функцией есть другая функция, которая заносит объект класса в i-й элемент массива:

C++
1
2
3
4
5
6
7
8
void Group::PutPerson(int i, Person& map)
 
{
 
    if (i>= 0 && i < 10) p_array[i] = map;
 
            
}
Group - созданный класс,
Person& map - объект класса типа Karta (другого созданного класса)
p_array - указатель на динамический массив объектов
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2015, 07:12
Ответы с готовыми решениями:

Возвращение массива в качестве результата выполнения метода класса (Kubuntu, netBeans, g++)
Всем привет. Пытаюсь написать свой первый демон на C++ по образу и подобию...

Инициализация объекта из массива объктов класса
Ребята подскажите, как создать массив объектов класса с инициализацией каждого?...

Возвращение функцией объекта
Здравствуйте. Это пример из книжки. #include &lt;iostream&gt; using namespace std;...

Возвращение пустого объекта.
Описан метод поиска структуры по заданным параметрам, который, в случае...

Возвращение объекта из функции
Почему при возврате объекта из функции этот объект вызывает копирующий...

5
zss
Модератор
Эксперт С++
7178 / 6677 / 4226
Регистрация: 18.12.2011
Сообщений: 17,622
Завершенные тесты: 1
25.09.2015, 08:31 2
C++
1
2
3
4
Person Group::GetPerson(int i)
{
    return  p_array[i];
}
0
anmartex
...
1710 / 1203 / 909
Регистрация: 12.02.2013
Сообщений: 1,978
25.09.2015, 08:35 3
Лучший ответ Сообщение было отмечено ForestGump как решение

Решение

C++
1
2
3
4
5
6
7
8
#include <stdexcept>
// ...
Person& Group::GetPerson(int i) throw(std::out_of_range) {
    if ((i < 0) || (9 < i)) {
        throw std::out_of_range("[0,10)");
    }
    return p_array[i];
}
1
ForestGump
0 / 0 / 0
Регистрация: 15.09.2015
Сообщений: 4
25.09.2015, 09:22  [ТС] 4
anmartex, спасибо огромное от души!!!

ток в моем случае немного подкорректировал:
C++
1
2
3
4
5
6
Person& Group::GetPerson(int i) 
 {
    if ((i < 0) || (9 < i)) 
        
    return p_array[i];
}
На самом деле пробовал писать также,тело функции, а вот ошибся я, как оказалось в описании заголовка функции )):
Group::Person& GetPerson(int i)
Еще раз всем спасибо!
0
Croessmah
++Ͻ
14610 / 8364 / 1576
Регистрация: 27.09.2012
Сообщений: 20,557
Записей в блоге: 2
Завершенные тесты: 1
25.09.2015, 09:32 5
ток в моем случае немного подкорректировал
И какой смысл тогда от проверки?
0
ForestGump
0 / 0 / 0
Регистрация: 15.09.2015
Сообщений: 4
25.09.2015, 12:05  [ТС] 6
ну, у меня компилятор выдал ошибку в варианте:
C++
1
2
3
4
5
throw(std::out_of_range) {
    if ((i < 0) || (9 < i)) {
        throw std::out_of_range("[0,10)");
    }
    return p_array[i];
убрал, ошибки исчезли. не будет работать в итоге?
а такой вариант будет работать?:
C++
1
2
3
4
5
{
    if (i>= 0 && i < 10) 
        
    return p_array[i];
}
компилится без ошибок

Добавлено через 2 часа 17 минут
вариант:
C++
1
2
3
4
5
throw(std::out_of_range) {
    if ((i < 0) || (9 < i)) {
        throw std::out_of_range("[0,10)");
    }
    return p_array[i];
верный, забыл включить #include <stdexcept>
0
25.09.2015, 12:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2015, 12:05

Возвращение временного объекта из метода
Доброго времени суток,господа! Сразу к делу: Имеется следующий код: struct...

Возвращение из функции динамически созданного объекта
Доброго всем времени суток! Столкнулся с такой проблемой. Необходимо создать...

Тип элемента массива базового класса
Суть задачи такова: есть массив указателей базового класса. Одному из них я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru