返回引用是为了方便接收者按照任意喜欢的形式处理返回值.
friend是private的所有者声明的, 声明允许访问private的另一个类/函数....动态分配数组内存, 布局和上面差不多, 但是数组部分前面多了一个白色的整数标识了数组元素的数量
继承, 复合, 委托
继承代表is-a的关系, 功能来自父类
复合代表has-a的关系, 功能来自类内包装的另一个对象...委托, 利用指针实现, 功能来自类内一个指向另一个类的指针
构造的时候都是从小到大(从父类到子类), 析构则相反, 内存分配也是大套小的
设计模式
普通单例: 静态成员在类内, 只要一写出这个类就会构造...父类写好一套算法流程, 但是其中调用的都是虚函数, 子类实现父类的函数后, 调用父类的算法流程, 父类由于本质上使用的是子类this指针, 因此会自动在流程中调用子类的实现....我们应该将其理解为一种程序内的协议来看上面的图, 保证了元素不被改变的对象不能调用non-const函数
因此为了最大化使用范围, 我们应该尽可能编写const型函数, 防止看似无伤大雅的const对象无法调用所需函数