expain以下代码片段
expain following code snippet
请解释我下面的代码片段
void tsfa_sol::calculate_cost(const pro_base *pb)
{
const tsfa_pro &tsfap = *(tsfa_pro*)pb; //I can't understand this line
}
非常感谢!
它会在
tsfa_pro *
中强制pb
然后取消引用它换句话说,tsfap
是对pb
所指的引用,使用C样式的强制转换将pb
从pro_base
转换为tsfa_pro
。
(tsfa_pro*)pb = 指针"pb"的 C 样式转换,最初类型为 pro_base
(星)(tsfa_pro)pb = 投射到类型 tsfa_pro 的指针"pb"的内容
常量 tsfa_pro &tsfap = 类型为"tsfa_pro"的常量引用
因此,它分配引用(tsfap),将指针(pb)的内容类型转换为类型(tsfa_pro)
希望这有帮助
相关文章:
- 这个带有模板<类 Vector 的C++代码片段有什么问题>
- 这两个代码片段相似,但显示的结果不同
- 如何替换此示例代码片段中已弃用的handler_type_t或 boost::asio::handler_type?
- 如果我在下面的代码片段中添加"delete[] d;",为什么我得到零?
- 我遇到了这个代码片段,不明白. 它递归检查 C++ 字符串中是否存在大写字符
- 任何人都可以解释一下我是否需要 & 在第一个代码片段中
- 提取狮身人面像文档中的C++代码片段
- 为什么此代码片段有效?如何取消引用空点?
- 无法在这个基本的Qt代码片段中找到错误,但我被告知它肯定存在?
- 这个代码片段中会发生死锁吗?为什么
- 这个代码片段中的while循环是如何工作的
- 在给定的代码中,有人可以解释一下(int i = 0; i<len; i++)count[str[i]]++的代码片段;
- 为什么我的C++代码在以下打印链表的代码片段中显示分段错误?
- 为什么这两个代码片段具有相同的效果?
- 以下代码片段的时间复杂度是多少?
- 为什么以下代码片段存在编译错误
- 如何在此代码片段中创建 begin() 指针
- 为什么这个简短的模板代码片段有效
- 无法理解代码的特定片段:这是一个函数,只是一行还是什么
- "Observable behaviour"和编译器自由消除/转换片段 C++ 代码