【发布时间】:2014-02-01 17:11:13
【问题描述】:
我有这个层次结构:
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来自于基类,所以必须在派生类开始构建之前对其进行初始化。 -
谢谢!你应该把这个作为答案!
标签: inheritance c++11 constructor default-constructor