Re[3]: как правильно написать конструктор инициализации?
От: Андрей Коростелев Голландия http://www.korostelev.net/
Дата: 17.10.05 19:18
Оценка:
Здравствуйте, seego, Вы писали:

>>Видимо ты хотел сказать конструктор копирования. Кода, который ты привел, недостаточно, чтобы дать конкретный >совет. Пиши объявление класса полностью. Например, неясно, есть ли у тебя указатели в классе и если есть, то как >они используются.


S>Я имел ввиду конструктор копирования. Мой класс picture имеет два private members

S>
S>...
S>std::vector<const Shape*> sContainer;
S>Graphics *grDevice;
S>....
S>


S>Вектор содежит указатели на виртуальный Shape, от которого происходит наследование. Эти указатели будут использоваться для вызова виртуальных методов наследников Shape.


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

Все еще непонятно как ты работаешь с указателями
Судя по вопросу, тебе недостаточно просто shallow-копирования

Picture::Picture(const Picture& p)
: sContainer(p.sContainer),
grDevice(p.grDevice)
{
}


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