《C++ PrimerPlus(第6版)中文版》—第13章 类继承
① 基类对象不能赋值给派生类对象,但派生类对象可以赋值给基类对象。
② 派生类对象在向基类对象转换时,会发生“对象切片”,对象被“切片”直到只剩下合适的基类子对象,对象切片实际上是当它拷贝到一个新对象时,去掉原来对象的一部分。基类对象指针和引用与派生类对象的指针和引用之间的转换,不会发生对象切片问题,只是简单地改变地址的内容,但会损失对象的类型信息。
③ auto与const结合使用时:
-
当类型不为引用时,不保留const属性
-
当类型为引用时,保留const属性
int x = 0;
const auto n = x; //n为const int 类型
auto z = n; //z的转换结果为int 类型,而不是const int
const auto & r1 = x; //r1为const int & 类型
auto & r2 = r1 //r2的转换结果为const int & 类型