OOP(面向对象)

详细内容见:OOP

三大特性:封装,继承,多态。


封装:就是打包,即,把数据和针对数据的操作,都统一到一个class里面。另:软件对扩展开放,对修改关闭(开闭原则 open-close principle)

继承:通过继承创建的新类称为“子类”或“派生类”。被继承的类称为“基类”、“父类”。
派生类的特点:使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
另:在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“属于”关系。例如,Employee是一个人,Manager也是一个人,因此这两个类都可以继承Person类。但是Leg类却不能继承Person类,因为腿并不是一个人。

多态:简单来说,就是覆盖,重载的总称。
覆盖(override),是指子类重新定义父类的虚函数的做法。
重载(overload),是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。


1.为什么析构函数要写成虚拟的?
因为多态的存在。派生类的析构函数都自动变成virtual的,这样析构时,就会调用基类的析构函数,不会因为没调用导致的内存泄露。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • C++文件 例:从文件income. in中读入收入直到文件结束,并将收入和税金输出到文件tax. out。 检查...
    SeanC52111阅读 2,855评论 0 3
  • 一、程序设计概念等 结构化程序设计特点: 程序设计=数据结构+算法程序内容=过程+过程调用 面向对象的程序设计方法...
    C2U阅读 716评论 0 1
  • C++ 面向对象编程 博客园地址:http://www.cnblogs.com/xiongxuanwen/p/42...
    先之阅读 687评论 0 1
  • 面向对象编程,oop并不是针对与javascript,很多语言都实现了oop这样一个编程发法论,比如说java,c...
    深沉的简单阅读 465评论 0 3
  • 1.面向对象的程序设计思想是什么? 答:把数据结构和对数据结构进行操作的方法封装形成一个个的对象。 2.什么是类?...
    少帅yangjie阅读 5,047评论 0 14