Re[4]: как правильно написать конструктор инициализации?
От: seego  
Дата: 17.10.05 20:05
Оценка:
Здравствуйте, Андрей Коростелев, Вы писали:

АК>может ты хотел сказать абстрактный?

Да, извините Shape деиствительно абстрактный

АК>Все еще непонятно как ты работаешь с указателями

может это прояснит дело
//picture.cpp
......
void Picture::draw() const
{
     for(int i=0; i<sContainer.size(); ++i)
          sContainer[i]->draw(*grDevice);
     
}
......


АК>Судя по вопросу, тебе недостаточно просто shallow-копирования

Я не думаю, что shallow-copy будет уместно, т.к. мой вектор содержит указатели

АК>Picture::Picture(const Picture& p)

АК>: sContainer(p.sContainer),
АК> grDevice(p.grDevice)
АК>{
АК>}


АК>Кроме того, раз уж у тебя появится недефолтный конструктор копии, следует написать и оператор присваивания

АК>и деструктор
Проверьте пожалуйста destructor
...
Picture::~Picture()
{
 for(int i=0; i<sContainer.size(); ++i)
         delete sContainer[i];
 
 sContainer.clear();
}
...

С оператором присваивания определюсь как только напишу конструктор копирования
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.