抽象类不能被实例化,也就是不能创建对象但是可以定义指向抽象类的指针和引用,并通过派生类对象的地址来初始化它们。
派生类必须实现其基类中所有的纯虚函数,否则它仍然是抽象类,无法被实例化。...因为抽象类的纯虚函数只有函数名,没有实现体,所以无法被单独实例化。但是,抽象类可以被用作基类,在派生类中实现纯虚函数,从而实现不同的多态行为。
规范派生类的实现。...抽象类中定义的纯虚函数,是对派生类接口的规范。派生类必须实现这些纯虚函数,否则无法被实例化。这样可以避免派生类在实现中遗漏必要的函数或参数,从而保证代码的正确性。
封装类的实现细节。...派生类的虚表
派生类的虚表有两部分构成:
第一部分: 从基类中继承下来的虚函数(如果在派生类中也定义了,就会重写,也就实现了多态).
第二部分: 派生类自己的虚函数,放在虚函数表的下半部分....派生类自己的虚函数,存放在第一个基类的虚表后面,
对于菱形虚拟继承,菱形继承都不推荐设计,就别谈菱形虚拟继承了,这里也就不讨论了.
c++中有关多态的知识,到这里就结尾了,如果文章有什么错误之处,希望与牛牛私信交流