您的位置:首页 > 编程语言 > C语言/C++

关于C++中的继承和重载的区别

2016-06-02 18:33 615 查看
        C++中的很多特性光从概念上的话,很难做区分。或者说,概念让人容易模糊,比如说函数重载和函数继承。

       先说重载,重载分为操作符重载和函数名重载,其中,操作符重载就是对运算操作符的原有功能进行自定义设置。比如+运算符,一般只用作对数字的相加。但是,从在运算符之后,可以实现对象的相加处理。要对运算符进行重载,一般格式为:函数类型 operator 函数名称(形参列表){};
operator就是重载操作符。

       对于运算符重载,这个是比较好辨识的,但是对于函数重载的话,往往和接口继承之间很容易引起混淆。其实呢,在它们的英文名称中,更加容易引发误会。重载的英文是overload,而继承的则是overwrite。这个就是它们之间的区别。overwriter用来解释继承其实是很好的,就是有覆盖、重写的含义。

       如何做区分?函数重载并不会修改掉原函数的接口和功能,而是会添加一个相同的函数名称,而返回值或形参类型不同的函数。而继承呢,则是会改写掉原函数接口的功能,属于覆盖掉原函数的功能。而overload,属于新增的一个接口,其实是对原函数进行功能扩展的一种。

       也就是说,重载和继承之间没有什么关系,这个概念也主要是因为在java中,对重载直接称为overload,而对继承则是overwrite。所以两者的差别引发大家的误会。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: