Динамические массивы в BCB6
От: Rogov_Peter Россия http://www.rogov.su
Дата: 17.02.04 08:53
Оценка:
Помогите пожалуйста!

Есть класс, в классе есть свойства, функции, структуры и т.п. Нужно сделать набор таких классов (Количество заранее не известно) В итоге должно получиться что-то типа VisualBasic'овского Collection или Некоторое подобие класса TStringList, только вместо AnsiString — мой класс.
Хотел сделать с через динамический массив, но при попытке положить в него че-нить он пишет Access Violation. Что делать? Может я как-то не правильно объявляю массив? Помогите, кто может. Заранее благодарен.
ICQ: 203-009-172
Re: Динамические массивы в BCB6
От: Avos Беларусь  
Дата: 17.02.04 09:12
Оценка:
Здравствуйте, Rogov_Peter, Вы писали:

R_P>Помогите пожалуйста!


R_P>Есть класс, в классе есть свойства, функции, структуры и т.п. Нужно сделать набор таких классов (Количество заранее не известно) В итоге должно получиться что-то типа VisualBasic'овского Collection или Некоторое подобие класса TStringList, только вместо AnsiString — мой класс.

R_P>Хотел сделать с через динамический массив, но при попытке положить в него че-нить он пишет Access Violation. Что делать? Может я как-то не правильно объявляю массив? Помогите, кто может. Заранее благодарен.

есть вопрос, почему не использовать контейнеры от STL?
в них можно записывать объекты классов, правда, придется реализовать (если еще не реализовано) конструктор копирования, оператор присваивания и оператор сравнения, по-моему.
Re: Динамические массивы в BCB6
От: Saltarello СССР http://saphirelab.hut.ru/
Дата: 17.02.04 09:26
Оценка:
Здравствуйте, Rogov_Peter, Вы писали:

R_P>Помогите пожалуйста!


R_P>Есть класс, в классе есть свойства, функции, структуры и т.п. Нужно сделать набор таких классов (Количество заранее не известно) В итоге должно получиться что-то типа VisualBasic'овского Collection или Некоторое подобие класса TStringList, только вместо AnsiString — мой класс.

R_P>Хотел сделать с через динамический массив, но при попытке положить в него че-нить он пишет Access Violation. Что делать? Может я как-то не правильно объявляю массив? Помогите, кто может. Заранее благодарен.

Используй vector из STL. Это наименее запарный вариант для динамических массивов.
А вообще, чтобы сказать, что ты делаешь неправильно, нужно народу код показать, не так ли?
... << RSDN@Home 1.1.2 stable >>
Не умножай сущностей без необходимости
Re: Динамические массивы в BCB6
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 17.02.04 09:46
Оценка:
Здравствуйте, Rogov_Peter, Вы писали:

R_P>Помогите пожалуйста!


R_P>Есть класс, в классе есть свойства, функции, структуры и т.п. Нужно сделать набор таких классов (Количество заранее не известно) В итоге должно получиться что-то типа VisualBasic'овского Collection или Некоторое подобие класса TStringList, только вместо AnsiString — мой класс.


Если хочется пользоватся VCL-классами, то RTFM по TList. Например:


class TMyClass
{
...
};

TList* lst = new TList;

lst->Add(new TMyClass);

TMyClass* cl = (TMyClass*) lst->Items[0];
delete cl;

delete lst;


Если хочется юзать STL, то любой из контейнеров, например, vector, map, list.
Re: Динамические массивы в BCB6
От: Shtirliz Россия  
Дата: 19.02.04 06:25
Оценка:
Здравствуйте, Rogov_Peter, Вы писали:

R_P>Помогите пожалуйста!


R_P>Есть класс, в классе есть свойства, функции, структуры и т.п. Нужно сделать набор таких классов (Количество заранее не известно) В итоге должно получиться что-то типа VisualBasic'овского Collection или Некоторое подобие класса TStringList, только вместо AnsiString — мой класс.

R_P>Хотел сделать с через динамический массив, но при попытке положить в него че-нить он пишет Access Violation. Что делать? Может я как-то не правильно объявляю массив? Помогите, кто может. Заранее благодарен.

Я использую динамические массивы в Delphi проблем пока не увидел....
Почему бы тебе не описать как
  Type 
      TMyDynamicArrayCollection = Array of Pointer;
        .....
        
        //Добавление
         Var a :  TMyDynamicArrAyCollection;
         
         SetLength(a,High(a)+1);
         a[High(a)] := TmyClass.create;
         
         //  и т.д.


правда немного больше текста при удалении...
Но можно попробовать.

У меня такие массивы содержат структуры имеющие динамические массивы со структурами.....

И все работает нормально
... << RSDN@Home 1.1.2 stable >> ...<<Win32NT 5.0.2195.0 >>
Дункан Маклауд любил ходить в лес и издеваться над кукушками.
138385660
Re: Динамические массивы в BCB6
От: aush  
Дата: 19.02.04 07:59
Оценка:
Здравствуйте, Rogov_Peter, Вы писали:
R_P>Есть класс, в классе есть свойства, функции, структуры и т.п. Нужно сделать набор таких классов (Количество заранее не известно) В итоге должно получиться что-то типа VisualBasic'овского Collection или Некоторое подобие класса TStringList, только вместо AnsiString — мой класс.
Есть такая вещь, как Standart Template Library (STL)

#include <vector>

std::vector<YourClass> Collection;

Collection.push_back(element);
Collection.resize(Num);
Collection[i]=element;
и прочее ......
... << RSDN@Home 1.1.3 beta 1 >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.