gpt4 book ai didi

c++ - dynamic_cast<> 针对随机指针?

转载 作者:行者123 更新时间:2023-11-27 23:44:33 27 4
gpt4 key购买 nike

可以dynamic_cast<>用于可能来自某个随机位置的指针。换句话说,一个指针可能指向 int。或者可能指向一些未知的结构?

如果是这样,它如何访问 vtable未知的事物;不会尝试访问 vtable通过给定的指针只是指向内存中的某个地方并可能导致 GPF

TIA!!

最佳答案

来自 this dynamic_cast reference :

dynamic_cast < new_type > ( expression )

...

expression - lvalue of a complete class type if new_type is a reference, prvalue of a pointer to complete class type if new_type is a pointer.

[强调我的]

完整的类类型在这里很重要,因为这意味着您不能真正将任何通用指针传递给 dynamic_cast .

的类型 expression 还必须相关 new_type (即基类、子类或兄弟类),否则行为将是未定义的。

如果您使用 dynamic_cast使用任何“随机指针”,您将拥有 undefined behavior ,虽然编译器可能会警告您(尽管并非总是可能),但作为程序员,您仍然会尝试做一些导致 UB 的事情。

关于c++ - dynamic_cast<> 针对随机指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51691766/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com