目录
❤ 2020.7.29 ❤
〇 代码重用
〇 类的组合
○ 组合类对象的定义与访问
也可以间接访问组合类中的对象
○ 组合类对象的构造与析构
○ 类的聚合
♦ 没看懂聚合类是怎么回事。。。
〇 类的继承与派生
○ 派生类的定义与访问
♣ Input函数因为被覆盖了,所以要指明基类。
○ 保护权限与保护继承
当定义基类使用保护权限时:
♣ 通过对象访问成员,只能访问公有权限的成员,保护权限和私有权限都不能访问。
♣ 在派生类中,新增函数成员访问基类成员,公有权限成员和保护权限成员都可以访问,或者说,类中的保护成员只对派生类中的新增函数成员开放,这就是【半开放】。
当继承基类使用保护继承时:
♣ 公有继承和私有继承对外部函数一视同仁。
♣ 派生类保护继承基类,对下级派生类的新增函数成员来说,派生类中的基类成员没有被封装,但对派生类外部的所有其他函数来说,这些成员被封装起来了,这就是【半封装】。
♣ 保护继承就是对下级派生类保持开放,而对其他函数来说,这些成员被隐藏。
○ 派生类对象的构造与析构
♣ 构造时,先初始化基类成员,再初始化新增成员,析构时相反,先析构新增成员,再析构基类成员。
♣ 组合派生类:如果派生类的新增成员中包含对象成员,则该派生类就是组合派生类。
一个赞破
〇 多态性
○ 运算符多态与重载
♣ 针对不同运算符,其运算符函数的具体实现方法也有所不同。(单目、双目;前置、后置等等)
♣ C++语言规定,前置单目运算符重载为函数成员时,没有形参,而后置单目运算符重载时,需要有个int型形参,并且没有参数名,在函数体中并不使用这个形参,只是为了使这两个重名函数有不同的形参,实现重载。
♣ 为方便程序员,c++语言默认为所有的类重载了赋值运算符,如果某个类在构造函数中动态分配了内存,那么就需要为该类编写析构函数来释放内存,此时,拷贝构造函数和重载运算符=的函数需要程序员自己来重新编写,其目的是进行深拷贝,为新建对象或被复制对象再分配同样多内存。
○ 对象的替换与多态
○ 对象多态性
♣ 通过积累引用或对象指针,访问类中的任何对象,如果根据实际引用或指向的对象类型,来自动调用该类同名函数成员中的新增成员,则称该类族中的对象具有多态性。
一个赞破
○ 抽象类
将圆形类和长方形类抽象为形状类,但是形状类的函数无法直接定义
♣ 纯虚函数的语法形式是在其声明部分加上=0
〇 多继承
○ 多个基类之间的成员重名
双继承
重复继承