【发布时间】:2018-06-03 13:52:13
【问题描述】:
这段代码合法吗?:
class BaseClass
{
public:
BaseClass (int *p) : p_ (p) { }
private:
int *p_;
};
class SubClass : public BaseClass
{
public:
SubClass () : BaseClass (&i_), i_ (123) {}
private:
int i_;
};
众所周知,基类是在子类的成员之前构建的,这就是我想知道的原因。
【问题讨论】:
-
只要基类在派生类初始化之前不取消引用指针我相信是有效的。
-
只是想知道谁在反对这个!
标签: c++ initialization undefined-behavior