61.(1)malloc和free是库函数,以字节为单位申请堆内存。
(2)new和delete是关键字,以类型为单位申请堆内存。
(3)malloc和free单纯的对内存进行申请与释放。
(4)对于基本类型new关键字会对内存进行初始化。
(5)对于类型new和delete还负责构造函数和析构函数的调用。
62."剥夺"编译器对构造函数的调用尝试,C++提供了explicit关键字用于阻止编译器对构造函数的调用尝试。
63.无状态函数:函数的调用结果只与实参值相关,状态函数:函数的调用不仅与实参值相关还与之前的函数调用有关。
64.面向对象中的继承指类之间的父子关系:
(1)子类拥有父类的所有成员变量和成员函数。
(2)子类就是一种特殊的父类。
(3)子类对象可以当作父类对象使用。
(4)子类可以拥有父类没有的方法和属性。
65.C++中的访问级别与继承,继承时的访问级别设定会影响到成员的访问级别。
(1)C++中的class继承默认为private继承。
(2)private继承的子类拥有父类的所有成员。
(3)private继承使得父类的所有成员在子类中变为private成员。
66.public继承:父类成员在子类中保持原有的访问级别。private继承:父类成员在子类中变为private成员。
67.类的protected成员可以在子类中被访问,但不能在外界被访问。类的protected成员的访问权限介于public和private之间。
68.类成员访问级别设置的原则:
(1)需要被外界访问的成员直接设置为public。
(2)只能在当前类中访问的成员设置为private。
(3)只能在当前类和子类中访问的成员设置为protected。
69.继承与访问级别:
| 父类成员访问级别 | → |
|
|
继承方式 |
| public | protected | private |
↓ | public | public | protected | private |
| protected | protected | protected | private |
| private | private | private | private |
公式:继承成员以外的访问属性=Max{继承方式,父类成员访问级别}
70.赋值兼容性原则:
(1)子类对象可以当作父类对象使用。
(2)子类对象可以直接赋值给父类对象。
(3)子类对象可以直接初始化父类对象。
(4)父类指针可以直接指向子类对象。
(5)父类引用可以直接引用子类对象。