假设我没有使用多重继承或虚拟继承,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();