gpt4 book ai didi

C++ 是否 reinterpret_cast 总是返回结果?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:06:18 26 4
gpt4 key购买 nike

我有两个类,A 和 B。A 是 B 的父类,我有一个函数接收指向 A 类型类的指针,检查它是否也是 B 类型,如果是将调用另一个函数,该函数接受一个指向类型 B 的类的指针。当函数调用另一个函数时,我提供 reinterpret_cast(a) 作为参数。如果这看起来模棱两可,这里有一个代码示例:

void abc(A * a) {
if (a->IsA("B")) { //please dont worry much about this line,
//my real concern is the reinterpret_cast
def(reinterpret_cast<B *>(a));
};
};

现在您知道我是如何调用“def”的了,我想知道 reinterpret_cast 是否实际上返回了一个 B 类型的指针,作为 def 的参数发送出去。我将不胜感激任何帮助。谢谢

最佳答案

reinterpret_cast 将始终按您说的做 - 它是一把大锤。你可以做

def(reinterpret_cast<B *>(42));

std::string hw = "hello";
def(reinterpret_cast<B *>(hw));

它总是会返回一个可能指向正确类型的指针。它假定您知道自己在做什么

关于C++ 是否 reinterpret_cast 总是返回结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45044072/

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