对象切片是如何在c++中发生的
how object slicing happens in c++?
第1行和第2行都要做对象切片还是只做第一行?谢谢你的宝贵时间!
class Base{
};
class Derived : public Base{
};
main()
{
Derived d1;
Base b1 = d1; //line 1
Base &b2 = d1; // line 2
}
只有第一个赋值可以导致切片,因为该赋值涉及到一个副本。第二个赋值操作仅接受对对象的引用。没有复制,就没有切片。
相关文章:
- 如何优雅地切片对象
- 避免矢量中的对象切片<Base><shared_ptr>
- 从 std::vector<无符号字符>切片中提取 int?
- 专门化模板覆盖函数/避免对象切片
- 我如何告诉叮叮当当的整洁切片特定类是可以的?
- FFMPEG:sws_scale返回错误:切片参数 0, 2160 无效
- 如何在 c++ 中进行 python 样式的字符串切片
- Valarray 切片数组与 'operator*' 不匹配
- 如何在C++中实现切片运算符[]?
- C++:在进行切片时对迭代器的约定,特别是对于访问最后一个元素并最终将其删除
- 防止在按值传递对象(继承)时进行切片
- CUDA 高效的 nd-array(张量)切片
- 使用vtkImageReslice重新切片三维原始图像
- 如何组合切片、模板和非派生类
- 当比特数不是8的倍数时,使用切片8算法计算CRC
- 从右侧切片 Qstring
- C++ 被此代码与多态性、指针和对象切片混淆
- 使用虚拟变量对 std::vector 内部循环进行切片的最佳方法
- C++切片和虚拟析构函数
- 切片整数参数包