Видимо ты хотел сказать конструктор копирования. Кода, который ты привел, недостаточно, чтобы дать конкретный совет. Пиши объявление класса полностью. Например, неясно, есть ли у тебя указатели в классе и если есть, то как они используются.
Re[2]: как правильно написать конструктор инициализации?
>Видимо ты хотел сказать конструктор копирования. Кода, который ты привел, недостаточно, чтобы дать конкретный >совет. Пиши объявление класса полностью. Например, неясно, есть ли у тебя указатели в классе и если есть, то как >они используются.
Я имел ввиду конструктор копирования. Мой класс picture имеет два private members
Вектор содежит указатели на виртуальный Shape, от которого происходит наследование. Эти указатели будут использоваться для вызова виртуальных методов наследников Shape.
Copy constructor должен скопировать все поля из объекта переданного в качестве параметра в конструктор копирования. Я могу добавлять любые методы, но не думаю что корректно делат что-то вроде
Здравствуйте, seego, Вы писали:
>>Видимо ты хотел сказать конструктор копирования. Кода, который ты привел, недостаточно, чтобы дать конкретный >совет. Пиши объявление класса полностью. Например, неясно, есть ли у тебя указатели в классе и если есть, то как >они используются.
S>Я имел ввиду конструктор копирования. Мой класс picture имеет два private members S>
S>Вектор содежит указатели на виртуальный Shape, от которого происходит наследование. Эти указатели будут использоваться для вызова виртуальных методов наследников Shape.
может ты хотел сказать абстрактный?
Все еще непонятно как ты работаешь с указателями
Судя по вопросу, тебе недостаточно просто shallow-копирования
Здравствуйте, Андрей Коростелев, Вы писали:
АК>может ты хотел сказать абстрактный?
Да, извините Shape деиствительно абстрактный
АК>Все еще непонятно как ты работаешь с указателями
может это прояснит дело
АК>Судя по вопросу, тебе недостаточно просто shallow-копирования
Я не думаю, что shallow-copy будет уместно, т.к. мой вектор содержит указатели
АК>Picture::Picture(const Picture& p) АК>: sContainer(p.sContainer), АК> grDevice(p.grDevice) АК>{ АК>}
АК>Кроме того, раз уж у тебя появится недефолтный конструктор копии, следует написать и оператор присваивания АК>и деструктор
Проверьте пожалуйста destructor