1
5
reinterpret_cast总是按你说的做-这是一个雪橇运动员。你能做到的
或
它将始终返回可能指向正确类型的指针。它假设你知道自己在做什么 |
2
3
如果你确定类型是
|
3
2
假设is指针指向成员anA,然后可以传递aB地址。
如果类型是同一类层次结构的一部分,则static_cast<&燃气轮机;将允许您在编译时发现是否有足够的信息来执行强制转换。通常情况下
如果没有足够的信息使静态_cast工作,那么可能会得到动态_cast<&燃气轮机;工作。这种情况下
这是因为当多重继承时,二次继承会在对象中创建多个类和vtable。当这种情况发生时,static\u cast和dynamic\u cast会调整对象的基址,以找到正确的嵌入式类基址。
|
4
1
重新解释强制转换将始终返回指针。它可能只是不是一个有效的指针,因为它实际上指向B类型的对象。
对于您的用例,您应该使用静态强制转换,其优点是编译器将检查B是否实际派生自a,并执行任何必要的调整。额外检查不会产生运行时开销,但是,如果对象实际上不是B类型,并且程序将任意失败,则不会发出警告。 |
5
1
正如其他人所说,
|
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
rainer · 后台插入程序的初始化 1 年前 |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |