gpt4 book ai didi

c++ - 从派生类到基类的static_cast会发生什么?

转载 作者:太空狗 更新时间:2023-10-29 21:45:36 25 4
gpt4 key购买 nike

在阅读 C++ 标准时,我读到 static_cast是一种直接初始化(C++标准8.5/15)。
我认为这意味着在 static_cast 期间,相应的重载构造函数被调用。
比如有一个类型B和派生自B的类型D,还有一个对象D d .然后表达式 static_cast<B>(d)static_cast表达。

按照标准,这 static_cast表达式是直接初始化。这是否意味着这将调用 B 类型的构造函数?并返回一个类型为 B 的新构造对象?


编辑
另一个问题是 B & b = d 怎么样?或 B b = d ?这两个语句是否涉及 B 的构造函数?

最佳答案

是的,对对象类型的 static_cast(即,不是对引用或指针类型的强制转换)将使用适当的构造函数来创建临时对象。

关于c++ - 从派生类到基类的static_cast会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17258521/

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