我有一个类层次结构,我知道给定的类 (B) 将始终派生为第二个 (D)。this
在 B 的构造函数中,如果我确定在整个构造完成之前没有人会尝试使用它,那么将指针静态转换为 D* 是否安全?就我而言,我想将对对象的引用传递给另一个类 (A)。
struct A
{
D & d_;
A(D & d) : d_(d) {}
};
struct D; //forward declaration
struct B
{
A a;
B() : a(std::static_cast<D&>(*this)) {}
};
struct D : public B
{};
这段代码安全吗?