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

Увеличение размера массива из элементов собственного класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как узнать размер двумерного вектора? http://www.cyberforum.ru/cpp-beginners/thread336908.html
есть квадратная матрица. Для ее хранения создаю динамический массив: double **matrix = new double*; for (int i = 0; i < range; i++) { matrix = new double(); } ... // Освобождение памяти...
C++ HTML Parser Всем привет! Необходимо написать parser содержимого html - в частности, тэгов Лично я в основу положил обычный проход по html, с поиском начального символа тэга <, определения типа тэга и... http://www.cyberforum.ru/cpp-beginners/thread336894.html
C++ Алгоритм передвижения монстров в игре
Доброго времени суток и спасибо ,что ,по крайней мере, обратили внимание на сообщение:yahoo: Итак проблема вот в чем заключаеться - делаю игру... все написал - алгоритм движения монстров(спасибо...
Динамика, динамика и снова динамика C++
Вот как сделать например, что бы динамический массив например int **pArray = new int*; for(int i = 0; i < rows; i++) pArray = new int; Объявлялся еще в одном for-е и на каждой последующей...
C++ С чего начать изучение C++ http://www.cyberforum.ru/cpp-beginners/thread336808.html
Добрый день всем! Я хотел бы получить совет об изучении языка (С++), теперь немного предыстории. Я учусь в колледже на последнем курсе на оператора ЭВМ, но кроме начальных знаний html и составлении...
C++ Нахождение площади через координаты треугольника Здравствуйте, есть задание Напишите функцию square, вычисляющую площадь треугольника. С ее помощью для каждой из N точек определите, принадлежит ли точка заданному треугольнику. Входные... подробнее

Показать сообщение отдельно
nchameleon
2 / 2 / 1
Регистрация: 06.04.2010
Сообщений: 161

Увеличение размера массива из элементов собственного класса - C++

28.07.2011, 14:42. Просмотров 684. Ответов 8
Метки (Все метки)

Добрый день, столкнулся с проблемой, у меня есть собственный класс

C++
1
2
3
4
5
6
7
8
9
myClass{
    myClass(){
        len = 0; 
        ii = new int[len];} 
    ~myClass(){ 
        delete[] ii;} 
    int* ii; int len; 
    gen(int _len){delete[] ii; len = _len;ii = new int[len];}
}
C++
1
2
3
4
5
6
7
8
//................
myClass* test = new myClass[10];// генерирую массив который буду потом увеличивать
// начинаю увеличение размера массива
myClass* test_temp = test;
test = new myClass[11];
for(int i=0;i<10;i++) test[i] = test_temp[i];
delete[] test_temp; //очищаю место выделенное под старый массив
//................
но возникаю ошибки при работе программы, я так понял ошибка в неправильном использовании адресов, что test[i] = test_temp[i]; выполняется присвоении адреса от старого массива и место выделенное в test[i] попросту теряется т.к. на него больше не указывает адрес и при попытке удалить промежуточный массив delete[] test_temp; происходит ошибка

1) я так понял чтобы все корректно работало необходимо производить копирование данных моего класса через собственный оператор присвоения (в классе прописать operator=), я правильно понял?
2) существуют ли более правильные методы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru