Избавляюсь от вэрнингов вроде «... should be initialized in the member initialization list».
Два вопроса:
1. А действительно ли стоит это делать? Например, есть такой код:
Class SomeClass
{
double m_a;
double m_b;
double m_c;
public:
SomeClass(a, b):
m_a(a),
m_b(b) { } // конструктор для "повседневного" применения
SomeClass() { } // это для того, чтобы можно было делать vector элементов этого типа
void calculateC()
{
m_c = /* адская формула с участием a и b */;
}
double getC () const { return m_c; }
void setA (double a) { m_a = a; calculateC(); }
void setB (double b) { m_b = b; calculateC(); }
}
Насколько оправдано здесь инициализировать m_c в SomeClass(a, b) и все переменные в SomeClass()?
2. Каким образом инициализировать «ненужные» в конструкторе члены? Касательно этого примера, как следует делать:
SomeClass(a, b):
m_a(a),
m_b(b),
m_c() { }
или
SomeClass(a, b):
m_a(a),
m_b(b),
m_c(0) { }