1、继承的工作方式:class graduatestudent: public student
2、类与类之间,以接口作为沟通,即使基类与子类也不例外。
3、构造基类Graduatestudent(参数表):student(pName) //带基类的构造函数
4、类以另一个类对象作数据成员,称为组合。
5、若派生类重载了基类中的函数,则调用派生类函数,若无则调用基类函数。
6、在运行时能依据其类型确认调用哪个函数的能力,称为多态性,或迟后联编、滞后联编。编译时就能确定哪个重载函数被调用,称为先期联编。
7、若语言不支持多态,则不能称为面向对象的。
8、实现多态技术,必须避免用面向过程的思维,如在类内部加一个成员来判断对象类型。
9、多态性可用关键字virtual 来标识其为虚函数,只需直接调用,由系统来考虑类型。
10、如果虚函数在基类与子类中出现的仅仅是名字的相同,而参数类型不同,或返回类型不同,即使写上了virtual关键字,则也不能进行迟后联编。
11、如果基类中的虚函数返回一个基类指针或返回一个基类的引用,子类中的虚函数返回一个子类的指针或子类的引用,则c++将其视为同名虚函数而进行迟后联编。 12、一个类中将所有的成员函数都尽可能低设置为虚函数对编程固然方便,但是会增加一些时空上的开销。对于C++来说,在对性能上有偏激追求的编程中,只选择设置个别成员函数为虚函数。此外只有类的成员函数才能说明为虚函数。静态成员函数不能是虚函数,内联函数不能是虚函数,因为内敛函数是不能在运行中确定其位置的。构造函数不能是虚函数。析构函数可以是虚函数而且通常声明为虚函数。
13、在类的设计时必须高度抽象,提取多个类中的公共元素,并且前提是不能相互影响。否则会造成冗余和错误。
14、将共有特征提取出来的过程称为分解。
15、努力通过编写巧妙的代码以达到减少程序行数的目的,是不值得的!通过继承而分解出多余的部分,可以合理地减少编程工作量。
16、C++允许程序员声明一个不能有实例对象的类,这样的类唯一的用途是被继承。这种类称为抽象类。
17、一个抽象至少具有一个纯虚函数。纯虚函数是被知名为不具体实现的虚成员函数。
18、例如:virtual void withdrawal(float mount) = 0; //纯虚函数,=0表明程序员不定义该函数
19、抽象类是作为基类为其他类服务的。
20、因为c++访问一个类的成员函数时必须证明该成员函数在类中的存在,因此需要虚函数。如通过基类指针访问。
21、虚拟继承的虚拟和虚拟函数的虚拟没有任何关系
22、继承类型:private 全private,public 不变,protected 继承时public 变为protected
23、如果不标明继承类型,则默认的继承为私有。为了可读性,最好不要用默认的方式。
24、在继承关系中,基类的private成员不但对应用程序隐藏,甚至对派生类也隐藏,基类的保护成员则只对应用程序隐藏,而对派生类则毫不隐瞒。