假设我没有使用多重继承或虚拟继承,C++ 标准是否保证如果我将 a 转换Derived*为 aBase*两个指针将具有完全相同的值?例如,以下代码是否总是调用success(),即使Derived和/或Base具有虚函数?
Derived* d = new Derived;
Base* b = d;
if (((void*)b) == ((void*)d))
success();
else
failure();
假设我没有使用多重继承或虚拟继承,C++ 标准是否保证如果我将 a 转换Derived*为 aBase*两个指针将具有完全相同的值?例如,以下代码是否总是调用success(),即使Derived和/或Base具有虚函数?
Derived* d = new Derived;
Base* b = d;
if (((void*)b) == ((void*)d))
success();
else
failure();