Re[3]: виртуальное копирование и оптимизация
От: jazzer Россия Skype: enerjazzer
Дата: 01.03.07 09:18
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, jazzer, Вы писали:


J>>Здравствуйте, Аноним, Вы писали:



А>>>Как наиболее правильно реализовать на C++?


J>>Тут тебе помогут мультиметоды.

J>>Например, в виде двойной диспетчеризации.
J>>Дальше — поиск в руки

А>мультиметоды я нашел:

А>http://www.rsdn.ru/Forum/Message.aspx?mid=51828#51828
Автор: Павел Кузнецов
Дата: 06.05.02


А>спасибо.


А>а как насчет operator= стоит ли его делать виртуальным,

А>или лучше не заниматься переопределением операций,
А>а написать метод с имененм?

Можно и то, и другое.
Например, предоставить перегруженную виртуальную функцию типа copy_to с разными аргументами, и звать ее из operator=
типа такого:
class MemSource : public BaseSource {
MemSource & operator=(const BaseSource& rhs) { rhs.copy_to(*this); return *this; }

void copy_to(MemSource& m) {.....}
void copy_to(FileSource & f) {.....}
};

class FileSource : public BaseSource {
FileSource & operator=(const BaseSource& rhs) { rhs.copy_to(*this); return *this; }

void copy_to(MemSource& m) {.....}
void copy_to(FileSource & f) {.....}
};

все виртуальное, естественно
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.