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

Динамический массив объектов - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
Savelev
0 / 0 / 0
Регистрация: 17.04.2010
Сообщений: 73
17.04.2010, 16:35     Динамический массив объектов #1
Как определить объект Group, который будет содержать динамический массив объектов Person?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
17.04.2010, 16:36     Динамический массив объектов #2
C#
1
ArrayList Group;
Про ArrayList почитай здесь здесь.
Savelev
0 / 0 / 0
Регистрация: 17.04.2010
Сообщений: 73
17.04.2010, 17:07  [ТС]     Динамический массив объектов #3
Т.е. если мне необходимо определить объет Group, то я должен написать:
ArrayList^ Group = new ArrayList.
Но тогда где я должен задать что он является динамический массив объектов Person.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
17.04.2010, 17:23     Динамический массив объектов #4
Savelev, я по ходу ошибся. Тебе надо на чистом C++?
Savelev
0 / 0 / 0
Регистрация: 17.04.2010
Сообщений: 73
17.04.2010, 17:30  [ТС]     Динамический массив объектов #5
Я пишу в Visual С++.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
17.04.2010, 17:32     Динамический массив объектов #6
Savelev, для начала ответь на вопрос: тебе нужно на чистом C++?
Savelev
0 / 0 / 0
Регистрация: 17.04.2010
Сообщений: 73
17.04.2010, 17:37  [ТС]     Динамический массив объектов #7
Чистый С++
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
17.04.2010, 18:42     Динамический массив объектов #8
Savelev, используй std::vector. Пример:
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
#include <vector>
 
class Person {
  void SomeMethod();
  // ...
}
 
int main() {
  std::vector<Person> group;
 
  Person p1;
  Person p2;
  Person p3;
 
  group.push_back(p1);  // Добавление
  group.push_back(p2);  // Добавление
  group.push_back(p3);  // Добавление
 
  // Обход
  for (int i = 0; i < group.size(); ++i) {
    group[i].SomeMethod();
  }
    
}
Savelev
0 / 0 / 0
Регистрация: 17.04.2010
Сообщений: 73
17.04.2010, 18:58  [ТС]     Динамический массив объектов #9
Спасибо. Наверное разберусь в этом.
novi4ok
549 / 502 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
17.04.2010, 19:10     Динамический массив объектов #10
"обход" элементов вектора иначе делается:

C++
1
2
3
4
5
6
std::vector<Person> group;
...
std::vector<Person>::const_iterator cit;
for (cit = group.begin(); cit != group.end(); cit++){
   cit->some_method();
}
const_iterator или iterator, зависит от конкретного случая. кроме того, в зависимости от того что из себя представляет Person, copy-constructor может понадобиться имплементировать. я бы контейнер свой написал вроде

C++
1
2
3
4
5
6
7
8
9
10
class PersonContainer {
public:
  PersonContainer ();
  virtual void ~PersonContainer () { clear (); }
  clear (); // delete all objects!
  add_person (const Person *pPerson);
  ...
private:
   std::vector<Person*> m_Persons;
}
, и его бы использовал. но кому что удобнее.
Savelev
0 / 0 / 0
Регистрация: 17.04.2010
Сообщений: 73
17.04.2010, 19:16  [ТС]     Динамический массив объектов #11
А не подскажешь где про std::vector можно почитать на русском? С примерами чтобы было желательно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2010, 19:43     Динамический массив объектов
Еще ссылки по теме:

C++ Возможно ли объекты и потомки этих объектов поместить в один и тот же динамический массив?
C++ Как реализовать класс Pricelist, который будет содержать динамический массив объектов Model
C++ Динамический массив динамических объектов

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

Или воспользуйтесь поиском по форуму:
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
17.04.2010, 19:43     Динамический массив объектов #12
http://www.cppreference.com/wiki/ru/stl/vector/start
Yandex
Объявления
17.04.2010, 19:43     Динамический массив объектов
Ответ Создать тему
Опции темы

Текущее время: 05:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru