Как инициализировать константное поле в детях?
От: Аноним  
Дата: 17.05.14 06:39
Оценка:
Есть protected константная переменная в базовом классе. Планировалось ее инициализировать в списке инициализации в детях. Но компилятор ругается, что надо это делать в базовом.
Как быть?
Re: Как инициализировать константное поле в детях?
От: Аноним  
Дата: 17.05.14 06:45
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть protected константная переменная в базовом классе. Планировалось ее инициализировать в списке инициализации в детях. Но компилятор ругается, что надо это делать в базовом.

А>Как быть?

А все, сам догадался — в аргумент базового конструктора вынес
Re[2]: Как инициализировать константное поле в детях?
От: johny5 Новая Зеландия
Дата: 26.06.14 06:46
Оценка: -1
Здравствуйте, Аноним, Вы писали:

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


А>>Есть protected константная переменная в базовом классе. Планировалось ее инициализировать в списке инициализации в детях. Но компилятор ругается, что надо это делать в базовом.

А>>Как быть?

А>А все, сам догадался — в аргумент базового конструктора вынес


Можно ещё вот так:

class Derived
{
  Derived()
  {
     m_baseClassValue = 1;
  }
}:
Re[3]: Как инициализировать константное поле в детях?
От: const_volatile  
Дата: 26.06.14 09:22
Оценка:
Здравствуйте, johny5, Вы писали:

А>>>Есть protected константная переменная в базовом классе. Планировалось ее инициализировать в списке инициализации в детях. Но компилятор ругается, что надо это делать в базовом.

А>>>Как быть?
J>Можно ещё вот так:

нельзя.

J>
J>class Derived
J>{
J>  Derived()
J>  {
J>     m_baseClassValue = 1;
                        ^
error: assignment of read-only member 'Base::m_baseClassValue'
J>  }
J>}:
J>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.