Re: Как копировать класс, содержащий указатель на интерфейс?
От: Viper_Craft  
Дата: 18.07.06 09:35
Оценка:
Здравствуйте, whirlwind_t, Вы писали:

_>Например,

_>
_>class A {
_>public:
_>  virtual void foo() = 0;
_>};

_>class B {
_>public:
_>  A* a;
_>};
_>


_>Как написать конструктор копирования для B, чтобы каждый класс B владем своим экземпляром наследника A? Ведь мы не знаем, что будет наследоваться от A...



Через "виртуальный конструктор"...

struct A
{
virtual foo() = 0;
virtual A* clone() const = 0;
};

class B
{
A *a;
public:
...
B( const B& b ) : a(b.a->clone()) {}
...
};
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.