crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в создание объектом собственной копии
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
whatevillurks Дата 21.2.2012, 15:55
  Есть еще вариант с фабрикой клонирования, в некоторых случаях это дает большую гибкость нежели использование виртуального метода клонирования в базовом классе. Более детально можно посмотреть в книгах A. Alexandrescu вики
good_game Дата 20.2.2012, 14:10
  Благодарю за идею.
Влад Дата 20.2.2012, 12:00
  Типичное решение (это классика):
class class1
{
    // ......
    // Тут некоторая общая функциональность классов class2 и class3, ради
    // которой они и входят в эту иерархию наследования.

    // клонирование объекта:
    virtual class1 *CreateCopy() = 0;
}

class class2 : public class1
{
    // .....
    virtual class1 *CreateCopy()
    {
        // некоторая реализация, специфичная для class2
    }
}

class class3 : public class1
{
    // .....
    virtual class1 *CreateCopy()
    {
        // некоторая другая реализация, с учетом особенностей class3
    }
}
good_game Дата 20.2.2012, 11:28
  Есть такая ситуация.
Имеем базовый класс class1. От него наследуются классы class2 и class3.
Нужно, чтобы объекты class2 и class3 умели создавать в динамической памяти собственные копии. Пусть это будет метод CreateCopy(). Какие будут мысли по этому поводу? Подскажите мудрое решение.

Мои мысли (чувствую, что тупое решение):
Определить методы
class2 * class2::CreateCopy()
class3 * class3::CreateCopy()
в классах class2 class3.

НО! Объекты типов class2 и class3 лежат в одном списке. Как использовать такой метод, пробегаясь по списку? Это очень важно.
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 12.7.2025, 7:56