Вызов базового члена в конструкторе при множественном наследовании в C++

Предположим, у меня есть эти два класса

class base_size
{
public:
   int size()
   { return 5; }
};

class base_implement
{
public:
   base_implement(int s) : _vec(s)
   {
      cout << "size : " << _vec.size() << endl;
   }
private:
   vector<float> _vec;
};

Если бы я наследовал от обоих, было бы нормально вызывать функцию-член одного из этих классов в конструкторе другого? Например

class derived : 
   public base_implement,
   public base_size
{
public:
   derived() : base_size(), base_implement(size())
   {
      // Is this OK? 
      // If derived is not yet constructed can I access this->size() ?
      // Works in VC++. Not sure about other compilers.
   }
};
11
задан Iam 15 July 2012 в 14:48
поделиться