#include <list>
using namespace std;
Реализованные динамические структуры данных
В какой структуре лучше и удобнее хранить объекты, если будет потребность удалять из любого места, добавлять в любое место и не известно их количество.
А можно пример, как создать список компонентов? Например кнопок. В чём тут ошибка?
Код:
Код:
list<TButton> Buttons;
TButton *b1 = new TButton(this);
Buttons.push_back(b1);
TButton *b1 = new TButton(this);
Buttons.push_back(b1);
Вылетает ошибка
Код:
E2459 VCL style classes must be constructed using operator new
Код:
list<TButton> Buttons;
TButton *b1 = new TButton(this);
b1->Parent = Form1;
Buttons.push_back(*b1);
TButton *b1 = new TButton(this);
b1->Parent = Form1;
Buttons.push_back(*b1);
Кнопка на форме появляется, но при добавлении, вылетает Exception
Код:
exception class EAccessViolation with message 'Access violation at address 00405ED2'...
Код:
list<TButton*> Buttons;
TButton *b1 = new TButton(this);
b1->Parent = Form1;
Buttons.push_back(b1);
TButton *b1 = new TButton(this);
b1->Parent = Form1;
Buttons.push_back(b1);
Только я всё таки не очень понимаю почему надо писать
list<TButton*> Buttons;
кто-то может подробнее объяснить или подкинуть литературы?
Цитата: FunTime
Только я всё таки не очень понимаю почему надо писать
list<TButton*> Buttons;
кто-то может подробнее объяснить или подкинуть литературы?
потому что
Цитата:
E2459 VCL style classes must be constructed using operator new
а вы это правило пытаетесь нарушить. Это ограничение Borland VCL.
Так тоже нельзя:
Код:
...
{
TButton mybtn1(this);
...
}
{
TButton mybtn1(this);
...
}
Цитата: FunTime
Разобрался. Проблема решена.
Только я всё таки не очень понимаю почему надо писать
list<TButton*> Buttons;
кто-то может подробнее объяснить или подкинуть литературы?
Код:
list<TButton*> Buttons;
TButton *b1 = new TButton(this);
b1->Parent = Form1;
Buttons.push_back(b1);
TButton *b1 = new TButton(this);
b1->Parent = Form1;
Buttons.push_back(b1);
Только я всё таки не очень понимаю почему надо писать
list<TButton*> Buttons;
кто-то может подробнее объяснить или подкинуть литературы?
потому что TButton - это класс, а TButton* - указатель на класс TButton.
Вам бы для начала нужно понять что такое указатели, ссылки и т.д., а потом уже браться за динамические структуры данных.