У меня есть эта иерархия:Наследования безопасность конструкторы в C++
struct Params { int k = 17; };
struct A
{
A(Params& par): _p(par)
{ }
Params& _p;
};
struct B: public A
{
using A::A;
int c{this->_p.k};
};
int main()
{
Params p;
B b(p);
return 0;
}
Может ли я быть уверен, что A::_p
всегда будут инициализированы перед вызовом его в объявлении B::c
?
Спасибо!
Да, 'A :: _ p' исходит из базового класса, поэтому его необходимо инициализировать до того, как производный класс начнет строить. – DanielKO
Спасибо! Вы должны сказать это как ответ! –