gpt4 book ai didi

c++ - 动态转换是否需要目标类型?

转载 作者:太空狗 更新时间:2023-10-29 23:32:11 26 4
gpt4 key购买 nike

看下面的表达式:

Target * p = dynamic_cast<Target*>(pFarAncestor);

是否存在动态转换类型可能与左值(在本例中为 p)类型不同的情况?换句话说,始终明确目标变量的类型是有原因的吗?

我想知道为什么编译器不接受像这样的缩略形式:

Target * p = dynamic_cast<>(pFarAncestor);

甚至

Target * p = dynamic_cast(pFarAncestor); // ok this seems a function call indeed

最佳答案

auto主要是因为这个原因引入了关键字:

auto p = dynamic_cast<Target*>(pFarAncestor);

如果你真的想避免重复表达式右侧的类型,你可以使用 decltype , 虽然有点冗长:

Target * p = dynamic_cast<decltype(p)>(pFarAncestor);

但是你显然必须至少在某处写一次类型。

关于c++ - 动态转换是否需要目标类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48862323/

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