Re[2]: Занесение объектов в список
От: Shein Украина  
Дата: 12.06.07 07:55
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:

L_L>это элегантно или нет? если да — то посмотри boost::assign


Всё равно приходится перечислять все объекты при добавлении в список.

class ClassList;

class BaseClass
{
public:
   BaseClass(ClassList* p)
   {
      // add this to list
   }
};

class SomeClass1 : public BaseClass
{
public:
   SomeClass1(ClassList *p): BaseClass(p)
   {
   }
};

class SomeClass2 : public BaseClass
{
public:
   SomeClass2(ClassList *p): BaseClass(p)
   {
   }
};

class SomeClass3 : public BaseClass
{
public:
   SomeClass3(ClassList *p): BaseClass(p)
   {
   }
};

class Devices
{
private:
   SomeClass1 m_obj1;
   SomeClass2 m_obj2;
   SomeClass3 m_obj3;    

public:
   Devices(ClassList* p):
      m_obj1(p), m_obj2(p), m_obj3(p) {}
};

class ClassList
{
private:
   char m_objects[sizeof(Devices)];

   list<BaseClass*> m_list;
public:
   ClassList()
   {
      Devices *p;
     
      p = new (m_objects) Devices(this);
   }
};

Но пожалуй это уже слишком
Проще будет просто поэлементно заполнить список
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.