Хранение динамических объектов в классе std::list
От: sa83  
Дата: 28.10.04 08:14
Оценка:
У меня есть свой класс, в котором одно из полей — указатель на двумерный массив типа double:

double* pX[3];
...
MyClass::MyClass(int n){
   pX[0] = new double[n];
   ...
}

Вот, мне нужно хранить неопределенное число таких объектов, поэтому я выбрал std::list<MyClass>;
Но, когда потом я извлекаю их из такого списка, оказывается, что то, что лежит в массиве pX, не соответствует тому, что я туда писал перед тем, как поместить объект в список. Проще говоря, там лежит мусор. Вопрос: стандартные списки не умеют хранить динамические данные? И как решить такую проблему: надо хранить неопределенное число объектов, у которых есть динамические данные, как это сделать?
Заранее благодарен.
Re: Хранение динамических объектов в классе std::list
От: korzhik Россия  
Дата: 28.10.04 08:16
Оценка:
Здравствуйте, sa83, Вы писали:

S>У меня есть свой класс, в котором одно из полей — указатель на двумерный массив типа double:


S>
S>double* pX[3];
S>...
S>MyClass::MyClass(int n){
S>   pX[0] = new double[n];
S>   ...
S>}
S>

S>Вот, мне нужно хранить неопределенное число таких объектов, поэтому я выбрал std::list<MyClass>;
S>Но, когда потом я извлекаю их из такого списка, оказывается, что то, что лежит в массиве pX, не соответствует тому, что я туда писал перед тем, как поместить объект в список. Проще говоря, там лежит мусор. Вопрос: стандартные списки не умеют хранить динамические данные? И как решить такую проблему: надо хранить неопределенное число объектов, у которых есть динамические данные, как это сделать?
S>Заранее благодарен.

а конструктор копирования у твоего класса есть?
Re: Хранение динамических объектов в классе std::list
От: Bell Россия  
Дата: 28.10.04 08:19
Оценка:
Здравствуйте, sa83, Вы писали:

Было бы неплохо увидеть конструктор корирования, оператор присваиваня и деструктор твонго класса.
Любите книгу — источник знаний (с) М.Горький
Re[2]: Хранение динамических объектов в классе std::list
От: sa83  
Дата: 28.10.04 10:43
Оценка:
Спасибо всем за подсказку.Дело в том, что я плохо знаю C++, только осваиваю, поэтому я просто не знал, что их нужно обязательно определить.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.