返回引用是为了方便接收者按照任意喜欢的形式处理返回值.
friend是private的所有者声明的, 声明允许访问private的另一个类/函数....堆上的分配称为动态分配.
new的原理是先计算目标大小, 然后申请空间返回void*, 再强制转型为目标类型, 最后调用构造函数
delete的原理是先调用析构函数, 然后再回收内存....动态分配数组内存, 布局和上面差不多, 但是数组部分前面多了一个白色的整数标识了数组元素的数量
继承, 复合, 委托
继承代表is-a的关系, 功能来自父类
复合代表has-a的关系, 功能来自类内包装的另一个对象...这个过程需要多出好多步的寄存器计算, 因此动态绑定运行起来比静态绑定慢
之所以要用指针来进行多态本质是因为我们无法管理大小不一的容器, 但是管理指针很方便
每当调用一个对象的函数时, 编译器会隐式传入一个...然后调用构造函数在内存上填写所需的信息, 最后返回强制转型的目标类型指针
delete: 先在目标内存上调用析构函数, 然后调用operator delete函数, 内部一般封装了free函数将指针内存进行释放