我想知道,下面的代码是否会导致不确定的行为:是否上溯造型一个空指针导致未定义行为
#include <cstddef>
#include <cstdio>
struct IA {
virtual ~IA() {}
int a = 0;
};
struct IB {
virtual ~IB() {}
int b = 0;
};
struct C: IA, IB {};
int main() {
C* pc = nullptr;
IB* pib = pc;
std::printf("%p %p", (void*)pc, (void*)pib);
}
这使用C++ 14:https:// ideone生成'0 0'。com/iefRnb – EdChum
多重继承(以及指针调整)的例子会更有趣。 – Quentin
@Quentin同意。要更新这个问题。 – Lingxi