1.父类子类,基类派生类的概念以及如何定义,访问控制,继承的访问控制,多继承概念等。
2.子类可以直接赋值等当父类使用。(类型兼容)
3.父子类对象内存模型(构造和析构的顺序等)。子类构造函数:父类构造函数(参数) 这样才能正确调用父类的构造函数。
4.类中static修饰的变量,是不分配内存,需要显性定义分配。
5.父子类同名的成员变量或者函数的处理方法。就是显性 子类对象.父类::成员函数或者变量。
6.多继承的语法定义,多继承的几个父类继承同一个父类的时候,容易产生二义性,解决办法是虚继承,出现重名情况时候还是会有二义性问题,那么这个时候解决方案是增加父类的域::来区别。
7.虚继承的使用办法 继承的访问控制关键词前增加virtual,那么继承同一个父类的就会执行一次,不会出现多次的问题,构造函数和析构函数也不会出现多次同父类的情况。值得一提的是virtual会对类里的变量做特殊处理。此时可以明显查看到类的空间变大,这可以很好验证。
8.多态的引出和使用方法。兼容性上父类指向或者引用的子类类型能够重写函数,达到多态的效果。父类中(子类可写可不写virtual)函数,子类中重写改函数,父类指向指针或者引用子类,这个时候可以根据子类类型调用子类的函数,实现多态。
9.封装打破C函数常规,抽象化,属性和方法分家并且封起来。继承,复用代码,多态实现框架,让后来者依然能被前者调用。
10.重载,重写,重定义的区别。重载不可继承只能在同一个类中根据参数的类型和数量等进行识别使用。重写是有virtual修饰的函数,重定义这没有,这两者都是类之间的,也就是父子类之间的。默认使用的是父类,此外还要注意一点的是就是静态联编和动态联编的区别。前者在编译期间就决定函数的执行,后者是执行期间,C大多是静态语言(if while 其实是动态联编),C++是动态语言。多态就是动态联编的体现。