提问人:kabla002 提问时间:11/10/2023 更新时间:11/10/2023 访问量:103
静态转换指向指针的指针 C++ [重复]
Static casting a pointer to a pointer C++ [duplicate]
问:
有人会帮我理解为什么第二次静态投射失败吗?第一个静态转换很好地检查以确保 Der 与 Base 相关。为什么第二个static_cast会导致编译器抛出以下错误。谢谢!auto cpp = static_cast<Base **>(bpp);
main.cpp:35:17: error: invalid ‘static_cast’ from type ‘Der**’ to type ‘Base**’
#include <stdio.h>
class Base
{
};
class Der : public Base
{
};
int main()
{
Base a;
Der b;
Base * ap = &a;
Der * bp = &b;
auto cp = static_cast<Base *>(bp);
Base ** app = ≈
Der ** bpp = &bp;
auto cpp = reinterpret_cast<Base **>(bpp);
//auto cpp = static_cast<Base **>(bpp); // Why does the cause an error?
printf("Hello World");
return 0;
}
答: 暂无答案
评论
OtherDerived*
static_cast
Der*
Base*
Der
Base
Der**
Base**