重载和重写对于C++来说是非常重要的概念,面向对象程序设计,会用这两个操作,你的代码会优雅很多。以前刚出道,不会重载,所以不断的想函数名称,绞尽脑汁,导致代码逻辑混乱而且前脚刚写完后脚就忘记了,说明代码功底不好也影响了整个项目。

          如果面试C++工程师,重载和重写的区别很频繁被问到。我建议这么简单回答即可:重载是指同名函数参数的类型,个数,顺序不同,根据参数列表决定调用哪个函数,函数的返回类型不关心。而重写是子类中实例化virtual修饰定义的函数,只有函数体不同,其他完全一样。如果往深入点,可以聊一聊C++经典特性多态特征,然后描述一下指针内存,虚表这些。

        重载的英文是overload,很多刚出道的少年不会用重载,项目里只需实现一个方法,取名非常容易,但是如果几十个同思想的方法呢,代码要优雅,取名又费劲,所以重载是最好的办法,而且review代码又是最快最好熟悉的。

       重写的英文是override,如果说C++的经典特性是继承,封装,多态。那么重写就把这个思想体现得淋漓尽致。你看设计模式,看Github上的第三方库,到处都是static和virtual修饰的函数,要想C++扎实,就要深入去理解重写内涵。

      编程是基本也是工具必须扎实,而对产品的认知和业务的理解才是决定你优秀的地方。所以好的程序员,应该是对产品功能非常熟悉,对业务的理解很透彻,然后把C++中的特性挥洒,每一行代码,每一个函数,每一个类,都透露着无穷无尽的韵味。