详细内容见:OOP
三大特性:封装,继承,多态。
封装:就是打包,即,把数据和针对数据的操作,都统一到一个class里面。另:软件对扩展开放,对修改关闭(开闭原则 open-close principle)
继承:通过继承创建的新类称为“子类”或“派生类”。被继承的类称为“基类”、“父类”。
派生类的特点:使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
另:在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“属于”关系。例如,Employee是一个人,Manager也是一个人,因此这两个类都可以继承Person类。但是Leg类却不能继承Person类,因为腿并不是一个人。
多态:简单来说,就是覆盖,重载的总称。
覆盖(override),是指子类重新定义父类的虚函数的做法。
重载(overload),是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。
1.为什么析构函数要写成虚拟的?
因为多态的存在。派生类的析构函数都自动变成virtual的,这样析构时,就会调用基类的析构函数,不会因为没调用导致的内存泄露。